Entweder hab ich Schuppen auf den Augen oder es ist tatsächlich so.
Innerhalb einer Routine vergißt eine globale Variable (Record) Teile ihres Inhaltes. (Ich hab die Stellen mit Kommentaren markiert, die "writeln" dienen nur der Kontrolle)
Einige Felder sind da, andere wieder nicht.
Vielleicht hat jemand eine Idee:
Code: Alles auswählen
procedure TForm1.ToolButton8Click(Sender: TObject);//Einstellplan öffnen
var ft : system.text;
i,j : word;
begin
if OpenDialog2.Execute then
begin
system.assign(ft,OpenDialog2.FileName);
{$I-}
system.reset(ft);
{$I+}
if ioresult <> 0 then
begin
ShowMessage('Konnte '+OpenDialog2.FileName+' nicht öffnen');
exit;
end;
Memo1.Clear;
readln(ft,AktESP.datens.version);
readln(ft,AktESP.datens.proznu);
readln(ft,AktESP.datens.nummer);
writeln('y: ',AktESP.datens.nummer);//Hier weiß er es noch !!!!!!
readln(ft,AktESP.datens.name);
readln(ft,AktESP.datens.abstba);
readln(ft,AktESP.datens.spanndr);
readln(ft,AktESP.datens.abstreit);
readln(ft,AktESP.datens.reitdruck);
readln(ft,AktESP.datens.aussteller);
for j := 1 to 10 do readln(ft,AktESP.datens.bemerkung[j]);
readln(ft,AktESP.datens.date);
readln(ft,AktESP.datens.ablage);
readln(ft,AktESP.datens.spannvorr);
readln(ft,AktESP.datens.backen);
readln(ft,AktESP.datens.spanndurm);
readln(ft,AktESP.datens.stkzeit);
readln(ft,AktESP.datens.rstzeit);
for j := 1 to 32 do
begin
readln(ft,AktESP.tools[j].lrn);
readln(ft,AktESP.tools[j].negpos);
readln(ft,AktESP.tools[j].name);
readln(ft,AktESP.tools[j].comment);
readln(ft,AktESP.tools[j].identnr);
readln(ft,AktESP.tools[j].place);
readln(ft,AktESP.tools[j].number);
readln(ft,AktESP.tools[j].material);
readln(ft,AktESP.tools[j].xlong);
readln(ft,AktESP.tools[j].zlong);
readln(ft,AktESP.tools[j].cutpoint);
readln(ft,AktESP.tools[j].radian);
end;
system.close(ft);
ESPLoaded := true;
Label30.Caption := OpenDialog2.FileName;
Edit2.Text := AktESP.datens.proznu;
writeln('xxx');
writeln(AktESP.datens.nummer);//Da hat er es vergessen
writeln('y: ',AktESP.datens.nummer);
Edit3.Text := AktESP.datens.nummer;
writeln(Edit3.Text);
Edit4.Text := AktESP.datens.name;
Edit5.Text := AktESP.datens.aussteller;
Edit6.Text := AktESP.datens.date;
Edit7.Text := AktESP.datens.ablage;
ComboBox7.Text := AktESP.datens.spannvorr;
ComboBox8.Text := AktESP.datens.backen;
Edit10.Text := AktESP.datens.spanndurm;
Edit11.Text := AktESP.datens.stkzeit;
Edit12.Text := AktESP.datens.rstzeit;
Edit14.Text:=AktESP.datens.abstba;
Edit15.Text:=AktESP.datens.spanndr;
Edit16.Text:=AktESP.datens.abstreit;
Edit17.Text:=AktESP.datens.reitdruck;
for i := 1 to 10 do
if AktESP.datens.bemerkung[i] <> ' '
then Memo1.Lines.Add(AktESP.datens.bemerkung[i]);
Werkzeuganzeigen(1);
ESPChanged := false;
end;
end;
Code: Alles auswählen
type
werkzeug = record
lrn : string[1];
negpos : string[3];
name : string[20];
comment : string[40];
identnr : string[10];
place : string[2];
number : string[4];
material : string[5];
xlong : string[6];
zlong : string[6];
cutpoint : string[6];
radian : string[6];
end;
daten = record
version : string[4];
proznu : string[5];
nummer : string[17];
name : string[20];
abstba : string[6];
spanndr : string[6];
abstreit : string[6];
reitdruck : string[6];
aussteller : string[15];
bemerkung : array[1..10] of string[50];
date : string[10];
ablage : string[11];
spannvorr : string[16];
backen : string[20];
spanndurm : string[4];
stkzeit : string[6];
rstzeit : string[4];
end;
plattealt = record
datens : daten;
tools : array[1..32] of werkzeug;
end;
Christian