AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) C++ ein struct mit fwrite in Datei schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

ein struct mit fwrite in Datei schreiben

Offene Frage von "PAX"
Ein Thema von PAX · begonnen am 8. Jan 2007 · letzter Beitrag vom 12. Jan 2007
 
Benutzerbild von PAX
PAX

Registriert seit: 22. Jun 2003
Ort: Karlsruhe
88 Beiträge
 
Delphi 7 Personal
 
#1

ein struct mit fwrite in Datei schreiben

  Alt 8. Jan 2007, 09:49
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
Andreas
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner

  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz