Hallo alle miteinander.
Seit einiger Zeit versuche ich ein Programm zu schreiben mit dem ich Datensätze aus Eingabefeldern abspeichern kann. Das geht. Ich will außerdem Die Datensätze wieder auslesen können. Das geht nur Teilweise und ich glaube ich habe dafür auch nicht die Beste Lösung. Und bearbeiten lassen sich die Datensätze auch nicht wirklich. Ich kann nichtmal auswählen welchen Datensatz ich auslesen will. Es wird immer nur der erste ausgelesen. Ich bin noch recht neu beim Programieren und habe keine Ahnung wie ich das lösen soll. Vielleicht weiß ja einer von euch bescheid und kennt vielleicht sogar bessere Möglichkeiten der umsetzung.
Das hier wäre der Code zum Einlesen und Speichern:
Einfach schonmal danke vorab für Hilfe
Seit einiger Zeit versuche ich ein Programm zu schreiben mit dem ich Datensätze aus Eingabefeldern abspeichern kann. Das geht. Ich will außerdem Die Datensätze wieder auslesen können. Das geht nur Teilweise und ich glaube ich habe dafür auch nicht die Beste Lösung. Und bearbeiten lassen sich die Datensätze auch nicht wirklich. Ich kann nichtmal auswählen welchen Datensatz ich auslesen will. Es wird immer nur der erste ausgelesen. Ich bin noch recht neu beim Programieren und habe keine Ahnung wie ich das lösen soll. Vielleicht weiß ja einer von euch bescheid und kennt vielleicht sogar bessere Möglichkeiten der umsetzung.
Das hier wäre der Code zum Einlesen und Speichern:
C++:
void CKundenstammView::OnBnClickedLoad()
{
//Datei zum lesen öffnen
CStdioFile Datei(m_strDateiname,CStdioFile::modeRead);
if(!Datei.m_pStream)
return;
CString strKnummer;
CString strNname;
CString strVname;
CString strGeburt;
CString strStrasse;
CString strOrt;
CString strPlz;
CString strTnummer;
int nStelle;
CString str;
CString strDatensatz;
//Inhalt des Datensatzes einlesen
Datei.ReadString(strDatensatz);
//von links an nach ; Suchen
nStelle = str.Find(";");
//Von links bis zum Zeichen Übertragen
strKnummer = str.Left(nStelle);
//Länge des Strings bis zu nStelle + 1 von Rechts (nStelle beginnt links)
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strNname = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strVname = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strStrasse = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strGeburt = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strOrt = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strTnummer = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
nStelle = str.Find(";");
strPlz = str.Left(nStelle);
str = str.Right(str.GetLength() - (nStelle + 1));
//Werte aus den Variablen in die Felder eintragen
GetDlgItem(IDC_KNUMMER)->SetWindowText(strKnummer);
GetDlgItem(IDC_NNAME)->SetWindowText(strNname);
GetDlgItem(IDC_VNAME)->SetWindowText(strVname);
GetDlgItem(IDC_STRASSE)->SetWindowText(strStrasse);
GetDlgItem(IDC_GEBURT)->SetWindowText(strGeburt);
GetDlgItem(IDC_ORT)->SetWindowText(strOrt);
GetDlgItem(IDC_TNUMMER)->SetWindowText(strTnummer);
GetDlgItem(IDC_PLZ)->SetWindowText(strPlz);
}
void CKundenstammView::OnBnClickedSichern()
{
//Datei zum Lesen öffnen
CStdioFile Datei(m_strDateiname,CStdioFile::modeRead);
//Prüfen ob die Datei vorhanden ist
if (!Datei.m_pStream)
return;
//Datei zum Lesen/Schreiben öffnen
CStdioFile DateiHilfe(m_strDateinameHilfe,CStdioFile::modeCreate | CStdioFile::modeWrite);
if (!Datei.m_pStream)
return;
//Variablen deklarieren
CString strKnummer;
CString strNname;
CString strVname;
CString strGeburt;
CString strStrasse;
CString strOrt;
CString strPlz;
CString strTnummer;
CString strDatensatz;
//Werte aus den Felden auslesen und in die Variablen schreiben
GetDlgItem(IDC_KNUMMER)->GetWindowText(strKnummer);
GetDlgItem(IDC_NNAME)->GetWindowText(strNname);
GetDlgItem(IDC_VNAME)->GetWindowText(strVname);
GetDlgItem(IDC_STRASSE)->GetWindowText(strStrasse);
GetDlgItem(IDC_GEBURT)->GetWindowText(strGeburt);
GetDlgItem(IDC_ORT)->GetWindowText(strOrt);
GetDlgItem(IDC_TNUMMER)->GetWindowText(strTnummer);
GetDlgItem(IDC_PLZ)->GetWindowText(strPlz);
//Werte der Alten Variablen in der neuen zusammenfügen
strDatensatz = strKnummer;
strDatensatz += ";";
strDatensatz += strNname;
strDatensatz += ";";
strDatensatz += strVname;
strDatensatz += ";";
strDatensatz += strStrasse;
strDatensatz += ";";
strDatensatz += strGeburt;
strDatensatz += ";";
strDatensatz += strOrt;
strDatensatz += ";";
strDatensatz += strTnummer;
strDatensatz += ";";
strDatensatz += strPlz;
strDatensatz += ";";
strDatensatz += "\n";
//Den Inhalt der Variable in die (neue) Datei Schreiben
DateiHilfe.WriteString(strDatensatz);
//Datei schließen
Datei.Close();
DateiHilfe.Close();
}
Einfach schonmal danke vorab für Hilfe