Code: Alles auswählen
var
a,b:string;
i,c:integer;
begin
a:=Edit1.Text;
b:=Edit2.Text;
Memo1.Lines.LoadFromFile('C:\Users\Desktop\typtage'+a+'.txt');
Memo2.Lines.LoadFromFile('C:\Users\Desktop\Zone'+a+'EFH_'+b+'.txt');
for i:= 1 to Memo1.Lines.Count-1 do
begin
if rightstr(Memo1.Lines[i],3) = 'UWH' then
begin // <-- hier
c := StrToInt(Memo2.Lines[1]); // <-- ACHTUNG: Memo2 muss mindestens 2 Zeilen enthalten, ansonten gibt es eine Exception
edit3.text:=IntToStr(c);
break;
end; // <-- bis hier wird nur ausgeführt, wenn UWH gefunden wurde
end;
end;
Alle Befehle, die ausgeführt werden sollen, wenn UWH gefunden wurden, müssen in einem begin..end Block zusammengefasst werden.
Ansonsten passiert bspw. folgendes:
die erste Ziele enthält kein UWH, daher wird die Variable c nicht mit der Zahl aus Memo2 gefüllt.
Trotzdem wird die Zahl in c in Edit3 ausgegeben. Zum Schluss wird die Schleife verlassen; es findet kein zweiter Durchlauf statt.
Edit: Warnung zu Idizes eingefügt