Handsup18 Geschrieben 12. Dezember 2008 Geschrieben 12. Dezember 2008 Hallo, ich versuche hier nun schon seit fast 2 Stunden eine Datei zu speichern und wieder zu laden. Hier die Aufgabenstellung. Es werden daten(Schülerdaten) in eine Listbox übernommen. Diese soll jetz gespeichert und wieder geladen werden können. Das Speichern scheint zu funktionieren nur das Laden nicht so richtig. Die daten sind dann schon wieder in der Listbox, nur wenn ich bei dieser eine Zeile selektiere sollen die daten des Schüllers in den Editfelder wieder erscheinen. Und genau das klappt noch nicht, entweder ich bekomme da irgendwelche kommischen Zeichen oder es kommt gar nichts. Hier mal ein Screen und ein Auszug aus dem Quelltext zum Speichern und Öffnen: Hoff es kann mir jemand helfen //OEFFNEN void __fastcall TfrmMain::Oeffnen1Click(TObject *Sender) { FILE *fp; //Deklaration des Filepointers if(OpenDialog1->Execute()==true) { //Speichern der Daten in die Datei fp = fopen(OpenDialog1->FileName.c_str(), "rb"); fread(FTE2, sizeof(struct schueler), schueler_anz, fp); fclose(fp); ListBox1->Items->LoadFromFile(OpenDialog1->FileName); } } //--------------------------------------------------------------------------- //SPEICHERN void __fastcall TfrmMain::Speichernunter1Click(TObject *Sender) { FILE *fp; //Deklaration des Filepointers if(SaveDialog1->Execute()==true) { //Speichern der Daten in die Datei fp = fopen(SaveDialog1->FileName.c_str(), "wb"); fwrite(FTE2, sizeof(struct schueler), schueler_anz, fp); fclose(fp); ListBox1->Items->SaveToFile(SaveDialog1->FileName); } } //--------------------------------------------------------------------------- Zitieren
Klotzkopp Geschrieben 12. Dezember 2008 Geschrieben 12. Dezember 2008 Was für ein bizarrer Mischmasch aus C und C++ Wie sieht denn diese ominöse "struct schueler" aus? Nur POD-Typen darf man auf einen Rutsch mit fread oder fwrite verarbeiten. Zitieren
Handsup18 Geschrieben 12. Dezember 2008 Autor Geschrieben 12. Dezember 2008 Bizarr?! Haben es so in der Schule gelernt. Hier nun die Struktur. #define schueler_anz 32 // Strukturdeklaration struct schueler { unsigned int Nr; char Name[20]; char Vorname[20]; char Strasse[20]; unsigned int Hausnummer; unsigned int PLZ; char Ort[20]; }; TfrmMain *frmMain; struct schueler FTE2[schueler_anz]; Zitieren
Klotzkopp Geschrieben 12. Dezember 2008 Geschrieben 12. Dezember 2008 Die Struktur ist soweit sicher. Allerdings machst du irgendwie alles doppelt. Du liest dein Struktur-Array aus der Datei, und dann liest du aus derselben Datei nochmal den Inhalt der Listbox. Und beim Speichern schreibst du erst dein Array in die Datei, und dann in dieselbe Datei den Inhalt der Listbox. Ich bin sicher, das ist so nicht gewollt. Zitieren
Handsup18 Geschrieben 12. Dezember 2008 Autor Geschrieben 12. Dezember 2008 Bin mir auch nicht sicher ob das so richtig ist. Wir wird denn das normalerweise gemacht. Was müsst ich abändern?? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.