Brauche mal wieder eure Hilfe!

Ich bin wirklich am Verzweifeln!!!



Seit Tagen suche ich diesen einen Fehler und komme auf nix!

Erhalte im unten abgebildeten Code die im Betreff genannte Fehlermeldung und ich weiß nicht woran es liegt.
Ich weiß, dass es bedeuten kann das in der Schleife ein Wert nicht gefunden wird, aber ich hab echt keine Ahnung wieso, weshalb, warum?
Ich hoffe ihr könnt mir weiterhelfen!

Code: Alles auswählen
procedure TForm1.Button8Click(Sender: TObject); //erstellen von Minutenwerten für Strom/Heizwärme/warmwasser
var
slstrom, slstromf, slstrome: TStringList; // Listen für die Stromwerte
wochentag1,nz1,nz2,nz3,ssz,mmz,zz: integer;
haustyp,year1: string;
datum1 : TDateTime;
ergebniss: single;
begin
slstrom := TStringList.Create;
slstromf := TStringList.Create;
slstrome := TStringList.Create;
year1 := Edit2.Text;
datum1 := StrToDate('01.01.'+year1);
nz2 := 0;
nz3 := 0;
zz := 1;
if (CheckBox1.Checked = True) and (CheckBox2.Checked = False) then haustyp := 'EFH'
else if (CheckBox1.Checked = False) and (CheckBox2.Checked = True) then haustyp := 'MFH'
else showmessage ('Fehler');
slstrom.LoadFromFile('C:\Strombedarf.txt'); //läd den Tagesbedarf an Strom für ein Jahr
// prüft um welchen Typtag es sich handelt für jeden Tag des Jahres
for nz1 := Memo4.Lines.Count-1 downto 0 do begin
wochentag1 := DayOfWeek(datum1);
if rightstr(Memo4.Lines[nz3],3) = 'UWH' then begin
slstromf.LoadFromFile('C:\Strom'+haustyp+'UWH.txt'); //EFH oder MFH
//Berechnungen Strom Minutenwerte für ÜWH
for ssz := 0 to 23 do begin
for mmz := 0 to 59 do begin
try
ergebniss:= StrToFloat(slstrom[nz3])*StrToFloat(slstromf[nz2]);
slstrome.Add(FloatToStr(ergebniss));
except
Exit;
end;
nz2:=nz2+1;
end;
end;
slstromf.Clear;
end
else if rightstr(Memo4.Lines[nz3],3) = 'UWB' then begin
slstromf.LoadFromFile('C:\Strom'+haustyp+'UWH.txt'); //EFH oder MFH
//Berechnungen Strom Minutenwerte für ÜWB
for ssz := 0 to 23 do begin
for mmz := 0 to 59 do begin
try
ergebniss:= StrToFloat(slstrom[nz3])*StrToFloat(slstromf[nz2]);
slstrome.Add(FloatToStr(ergebniss));
except
Exit;
end;
nz2:=nz2+1;
end;
end;
slstromf.Clear;
end
else
slstromf.LoadFromFile('C:\Strom'+haustyp+'WSB.txt'); //EFH oder MFH
//Berechnungen Strom Minutenwerte für WSB
for ssz := 0 to 23 do begin
for mmz := 0 to 59 do begin
try
ergebniss:= StrToFloat(slstrom[nz3])*StrToFloat(slstromf[nz2]);
slstrome.Add(FloatToStr(ergebniss));
except
Exit;
end;
nz2:=nz2+1;
end;
slstromf.Clear;
end;
nz2:=0;
datum1 := datum1 + zz;
nz3 := nz3 + 1;
end;
slstrome.SaveToFile('C:\strom.txt');
slstrom.Free;
slstromf.Free;
slstrome.Free;
end;
end.