Autor Beitrag
Samolex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22

Win xp
Delphi 5
BeitragVerfasst: Mi 22.08.07 00:30 
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 ?)

ausblenden volle Höhe 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.Edit_SoundPfad.Text := 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.


Zuletzt bearbeitet von Samolex am Mi 22.08.07 08:35, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 22.08.07 00:33 
Moin!

Records dürfen keine dynamischen Variablen enthalten, wenn man diese typisiert Speichern will: :idea: :mahn:
user profile iconSamolex hat folgendes geschrieben:
ausblenden 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... ;)

_________________
There are 10 types of people - those who understand binary and those who don´t.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Mi 22.08.07 02:48 
user profile iconSamolex 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22

Win xp
Delphi 5
BeitragVerfasst: Mi 22.08.07 08:43 
user profile iconNarses 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 22.08.07 10:09 
Moin!

user profile iconSamolex hat folgendes geschrieben:
wie deklariere ich eine INI-Datei ?

Such mal nach Suche in: Delphi-Forum, Delphi-Library TINIFILE, gibt Beispiel-Code genug im Forum. :les: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.