Grüßt euch, Freunde!
Ich habe eine folgende Struktur:
Delphi-Quellcode:
struct EinstellungsDatei { // Format für die Konfigurationsdatei
int AVon, ABis, MFak, MPro, ZeitAuf, ZeitAbf, StatSitz, Addi, Subt, Mult, Div;
bool ZeitBe, ZeitDan, ManBe1, ManBe2, ManBe3, ManBe4, ManBe5;
};
Und diese schreibe ich mit folgendem Quelltext in eine Datei:
Delphi-Quellcode:
benutzerName = "Benutzer\\"+Form2->LabeledEdit1->Text+".cfg";
struct EinstellungsDatei maske;
FILE *datei2 = fopen(benutzerName.c_str(), "wb");
//erstmal die GroupBox für die Zahlenbereiche (immer von links nach rechts, oben nach unten)
maske.AVon = Form3->Edit1->Text.ToInt();
maske.ABis = Form3->Edit2->Text.ToInt();
...
fwrite(&maske, sizeof(maske), 1, datei2);
fclose(datei2);
FileSetAttr("Benutzer\\"+Form2->LabeledEdit1->Text+".cfg", faSysFile);
Das Problem ist, dass nachher beim Einlesen und setzen der Werte innerhalb der Komponenten, die ersten 5 Komponenten die korrekten (gespeicherten) Werte auch wieder tatsächlich bekommen und die restlichen Komponenten bekommen unsinnige zufällige Werte. Des Weiteren ist der Rückgabewerte der fopen() hierbei 0 - folglich trat ein Fehler auf.
Ich kann mir das nur nicht erklären, weil zum Zeitpunkt des Speicherns die Elementvariablen der Struktur richtige Werte besaßen und diese theoretisch auch geschrieben werden sollten.
Komisch finde ich hier auch, dass "datei2" offensichtlich ein Zeiger ist. Und müsste man für Zeiger nicht vorher Speicherplatz reservieren? Ich habe die obrige Lösung halt einfach so aus dem Programmierbeispiel aus der Hilfe entnommen.
Habt ihr einen Plan, was falsch läuft?
Danke, beste grüße und
viva los tioz!
PAX