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); } } //---------------------------------------------------------------------------
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.
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];
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.
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??
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden