Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Daten speichern und wieder laden

Empfohlene Antworten

Veröffentlicht

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);

}

}

//---------------------------------------------------------------------------

post-56340-14430448158297_thumb.jpg

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];

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.

Bin mir auch nicht sicher ob das so richtig ist.

Wir wird denn das normalerweise gemacht. Was müsst ich abändern??

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.