Entwickler-Ecke

Dateizugriff - Was ist falsch..? rewrite(f),reset(f),write(f).....


wentom - Di 26.08.03 20:00
Titel: Was ist falsch..? rewrite(f),reset(f),write(f).....
Hi,

irgendwas muß ich da übersehen, aber ich komm nicht drauf. Solange ich das Programm nicht verlasse, sind die Werte auf der "ort.dat". wenn ich das Programm verlasse und neu starte, habe ich die Werte 1,0,0,0.
Warum sind die Werte in der "ort.dat" nach Neustart weg ?
Die Datei wird sonst nirgend bearbeitet.


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:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
unit Eist;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Spin,unit1,unit4;

type
  TEinstell = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    ortein: TSpinEdit;
    ur1ein: TSpinEdit;
    ur2ein: TSpinEdit;
    ur12ein: TSpinEdit;
    OK: TButton;
    procedure OKClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Einstell: TEinstell;

implementation
 type satz = record
             orttemp,ur1temp,ur2temp,
             ur3temp,ur4temp,ur13temp,
             ur14temp,ur23temp,ur24temp,
             ur34temp,ur12temp:integer;
             END;
                                            
VAR ed : satz;
     f : file of satz;
{$R *.DFM}

procedure TEinstell.OKClick(Sender: TObject);
begin
 assignfile(f,'ort.dat');reset(f); //rewrite(f);
 ed.orttemp:=ortein.value;
 ed.ur1temp:=ur1ein.value;
 ed.ur2temp:=ur2ein.value;
 ed.ur12temp:=ur12ein.value;
// assignfile(f,'ort.dat');rewrite(f);write(f,ed);
 rewrite(f);write(f,ed);
 closefile(f)
end;

procedure TEinstell.FormActivate(Sender: TObject);
begin
assignfile(f,'ort.dat');reset(f); read(f);
 ortein.value:=ed.orttemp;
 ur1ein.value:=ed.ur1temp;
 ur2ein.value:=ed.ur2temp;
 ur12ein.value:=ed.ur12temp;
// assignfile(f,'ort.dat');rewrite(f);write(f,ed);
 //write(f,ed);
 closefile(f)
end;

end.


Vielleicht sieht irgendwer.
Danke CIAO Tom

Moderiert von user profile iconAya: Delphi-Tags hinzugefügt.


Keldorn - Di 26.08.03 20:16

Hallo

Bin kurz drübergeflogen:
verwende bitte Delphi-tags, erhöht die lesbarkeit.
Zitat:

read(f);

überleg mal, wohin read die daten auslesen soll, wenn du keine Variable übergibst.

Zitat:

assignfile(f,'ort.dat');

schreib besser noch den Pfad mit davor. (z.b. extractfilepath(application.exename),wenns das prog-vverzeichnis sein soll)

Mfg Frank


wentom - Di 26.08.03 21:05

Genau "read(f,ed)". Aber ich hab's einfach nicht gesehen :?

Danke für die Tipps...

CIAO