Entwickler-Ecke
Dateizugriff - Datei wird nicht richtig gelesen (Blockread/Blockwrite)
Samolex - Mi 22.08.07 00:30
Titel: Datei wird nicht richtig gelesen (Blockread/Blockwrite)
Hi,
Ich habe ein Programm geschrieben, in dem ich einige Optionen Speichern möchte.
Beim starten des Programms wird gepüft, ob die Options-Datei vorhanden ist. Wenn sie nicht vorhanden ist, so wird der schritt "Laden" übergangen und es bleiben die Vordefinierten Optionen. Wenn der benutzer jetzt neue Optionen einstellt so wird die Datei angelegt und die Daten drinne gespeichert. Beim erneuten Startetn sollen dann diese Daten gelesen werden. Und hir ist mein Problem er liest die Daten nicht richtig (oder schreibt er sie nicht richtig ?)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| ... t_Option = Record SoundPfad : String; Soundan : Boolean; end;
var Sound1 : TSound1; Optio : t_Option; dir : String;
const FileName = '\Optionen.Dat';
implementation
uses Countdown_Unit;
{$R *.DFM}
procedure TSound1.Button_okClick(Sender: TObject); var dat : File; begin Optio.SoundPfad := Sound1.Edit_SoundPfad.Text; Optio.Soundan := Sound1.Check_Play.Checked; AssignFile(dat,dir+FileName); Rewrite (dat,1); BlockWrite (dat,Optio,SizeOf(optio)); CloseFile (dat); ShowMessage ('Datei : "'+dir+'\Optionen.ops" erfolgreich gespeichert'); Sound1.Close; end;
procedure TSound1.Button_SuchenClick(Sender: TObject); begin if Open.Execute then Sound.Sound1.Edit_SoundPfad.Text := Open.FileName; end;
procedure TSound1.FormCreate(Sender: TObject); var dat : File; begin GetDir (0,dir); if FileExists (dir+FileName) then begin AssignFile(dat,dir+FileName); Reset (dat,1); BlockRead (dat,Optio,SizeOf(Optio)); CloseFile (dat); ShowMessage (Optio.SoundPfad); Sound1.Check_Play.Checked := Optio.Soundan; end; end; |
MfG Samolex
PS : Ich hänge mal,zum leichteren Verständnis, die "Exe" an.
end.
Narses - Mi 22.08.07 00:33
Titel: Re: Datei wird nicht richtig gelesen (Blockread/Blockwrite)
Moin!
Records dürfen keine dynamischen Variablen enthalten, wenn man diese typisiert Speichern will: :idea: :mahn:
Samolex hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4:
| t_Option = Record SoundPfad : String; Soundan : Boolean; end; | |
Warum nimmst du keine INI-Datei? Scheint mir in diesem Fall die bessere Wahl. ;)
cu
Narses
//EDIT: Die Exe nutzt da herzlich wenig, der Code ist das Wichtige! Kannste ruhig wieder entfernen und den EE-Server entlasten... ;)
Reinhard Kern - Mi 22.08.07 02:48
Titel: Re: Datei wird nicht richtig gelesen (Blockread/Blockwrite)
Samolex hat folgendes geschrieben: |
Hi,
..... Und hir ist mein Problem er liest die Daten nicht richtig (oder schreibt er sie nicht richtig ?)
|
Hallo,
das sollte man natürlich immer als erstes überprüfen, gleich nach dem ersten Schreiben - mit einem Hex-Editor: sieht die Datei so aus, wie du dir das gedacht hast?
Gruss Reinhard
Samolex - Mi 22.08.07 08:43
Titel: Re: Datei wird nicht richtig gelesen (Blockread/Blockwrite)
Narses hat folgendes geschrieben: |
Moin!
Warum nimmst du keine INI-Datei? Scheint mir in diesem Fall die bessere Wahl. ;)
//EDIT: Die Exe nutzt da herzlich wenig, der Code ist das Wichtige! Kannste ruhig wieder entfernen und den EE-Server entlasten... ;) |
Hi,
habe die Exe entfertnt...
wie deklariere ich eine INI-Datei ?
MfG
Samolex
Narses - Mi 22.08.07 10:09
Titel: Re: Datei wird nicht richtig gelesen (Blockread/Blockwrite)
Moin!
Samolex hat folgendes geschrieben: |
| wie deklariere ich eine INI-Datei ? |
Such mal nach
TINIFILE, gibt Beispiel-Code genug im Forum. :les: ;)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!