Hallo,
ich habe hier ein ganz komisches Problem.
Es existieren zwei Memo Boxen. Memo1 liest eine Datei ein und schaut Zeile für Zeile ob ein String vorhanden ist, wenn ja wird ab dieser Zeile nichts mehr in Memo2 eingetragen. Das funktioniert super in Form.Show aber nicht wenn dies in einem Timer aufgerufen wird. Das Memo ist nur 20-40Zeilen lang (Config Datei)
Ich möchte mit Ablauf von Timer2 in der Config ab der Zeile mit String #Hier_nicht_mehr die restlichen Zeilen raus haben.
Delphi-Quellcode:
Memo1.Lines.LoadFromFile('dateiname');
Memo2.Clear;
for i := 0 to Memo1.Lines.Count-1 do begin
if (Pos('#Hier_nicht_mehr', Memo1.Lines[i]) <> 0) and (r = 0) then
r := 1;
if r = 0 then
Memo2.Lines.Add(Memo1.Lines[i]);
end;
In dem Timer siehts dann so aus
Delphi-Quellcode:
if time = 0 then
begin
Timer1.Enable := false;
Memo1.Lines.LoadFromFile('dateiname');
Memo2.Clear;
for i := 0 to Memo1.Lines.Count-1 do begin
if (Pos('#Hier_nicht_mehr', Memo1.Lines[i]) <> 0) and (r = 0) then
r := 1;
if r = 0 then
Memo2.Lines.Add(Memo1.Lines[i]);
end;
end;
In der if Abfrage wird vor und nach der For Schleife noch zwei andere Sachen gesetzt die auch richtig sind. Hab schon die Memo Sachen in eine eigene procedur ausgelager und die dort aufgerufen aber das geht auch nicht. Im Form.Show hingegen alles super. Es mit nur einem Memo zu versuchen brachte auch nichts.
Delphi-Quellcode:
for i := 0 to Memo1.Lines.Count-1 do begin
if (Pos('#Hier_nicht_mehr', Memo1.Lines[i]) > 0) and (r = 0) then
r := 1;
if r = 1 then
Memo1.Lines.Delete(i);
end;
Die Config sieht so aus:
Code:
# Infotext
# Infotext
# Infotext
stream = 1
bitrate = 128
#Hier_nicht_mehr
typ = mp3
...
Wäre super wenn jemand die Lösung kennt.