Hallo!
Wer kann mir dabei helfen, den folgenden Fehler in der folgenden Ausgabeprozedur zu
finden, so daß die Ausgabe funktioniert.
Ich erhielt beim compilieren folgende Meldung:
"...Exception der Klasse EInOut Error...Meldung:'E/A-Fehler6'...
Code:
procedure TForm3.Button5Click(Sender: TObject);
var
jk, jj, ss, kk : integer;
min, Sum, Sum1, Dif : real;
begin
with StringGrid1 do
begin
StringGrid1.FixedCols:=0; StringGrid1.FixedRows:=1;
StringGrid1.ColCount:=5; StringGrid1.RowCount:=367;
StringGrid1.Cells[0,0]:='Tag';
StringGrid1.Cells[1,0]:='Datum';
StringGrid1.Cells[2,0]:='Abschattungsbeginn';
StringGrid1.Cells[3,0]:='Abschattungsende';
StringGrid1.Cells[4,0]:='Belastungszeit';
kk:=0;
for jk:=1 to 366 do
if gSchatA[jk]>0 then begin
kk:=kk+1;
Tag:=jk;
Deklination(Tag);
AU(Tag);
tAnfang:=0.1*SchatA[jk]+0.9*gSchatA[jk];
Besser(tAnfang);
Dif:= abs(gSchatA[jk]-gZeit);
if (Dif < 0.00025) or (gZeit=0) then
gSchatA[jk]:=gZeit
else
repeat
tAnfang:=gSchatA[jk];
Besser(tAnfang);
Dif:=abs(gSchatA[jk]-gZeit);
gSchatA[jk]:=gZeit;
until Dif < 0.00025;
tAnfang:=0.1*SchatE[jk]+0.9*gSchatE[jk];
Besser(tAnfang);
Dif:= abs(gSchatE[jk]-gZeit);
if (Dif < 0.00025) or (gZeit=0) then
gSchatE[jk]:=gZeit
else
repeat
tAnfang:=gSchatE[jk];
Besser(tAnfang);
Dif:=abs(gSchatE[jk]-gZeit);
gSchatE[jk]:=gZeit;
until Dif < 0.00025;
if gSchatA[jk]=0 then
if gSchatE[jk] >0 then
gSchatA[jk]:=gSchatE[jk];
if gSchatE[jk]=0 then
if gSchatA[jk] >0 then
gSchatE[jk]:=gSchatA[jk];
Belastung[jk]:=(SchatE[jk]-SchatA[jk])*60;
gBela[jk]:=(gSchatE[jk]-gSchatA[jk])*60;
// Zeitumwandlung in Stunden und Minuten
ss:=trunc(gSchatA[jk]);
min:=round((gSchatA[jk]-SS)*60);
if min=60 then begin
ss:=ss+1;
min:=0;
end;
gSchatA[jk]:=ss+min/100;
ss:=trunc(gSchatE[jk]);
min:=round((gSchatE[jk]-ss)*60);
if min=60 then begin
ss:=ss+1;
min:=0;
end;
gSchatE[jk]:=ss+min/100;
Tag:=jk;
Datum(Tag);
jj:=Trunc(kk/20);
if jj= kk/20 then Readln;
StringGrid1.Cells[0,jk]:=InttoStr(jk);
StringGrid1.Cells[1,jk]:=InttoStr(Dat)+' '+Monat;
StringGrid1.Cells[2,jk]:=FormatFloat('0.00', gSchatA[jk]);
StringGrid1.Cells[3,jk]:=FormatFloat('0.00', gSchatE[jk]);
StringGrid1.Cells[4,jk]:=FormatFloat('0.0', gBela[jk]);
StringGrid1.RowCount:=StringGrid1.RowCount+1;
end;end;
Sum:=0;
Sum1:=0;
for jk:=1 to 366 do begin
Sum:=Sum+Belastung[jk];
Sum1:=Sum1+gBela[jk];
end;
Jahrbela:=Sum/60;
Jahrbe:=Sum1/60;
StringGrid1.RowCount:=StringGrid1.RowCount+1;
StringGrid1.Cells[0,StringGrid1.RowCount]:='Jahresbelastung:';
StringGrid1.Cells[1,StringGrid1.RowCount]:=FormatFloat('0.0', Jahrbe);
StringGrid1.Cells[2,StringGrid1.RowCount]:=FormatFloat('0.0', Jahrbela);
readln; // Hier ist die Unterbrechnug des Programmes
end;
Danke für die Hilfe
Gruß
TF