Wie im Thread-Titel schon geschrieben verursacht Application.Terminate ein Fehler in meiner EOF Schleife....
Hier der Code :
Delphi-Quellcode:
procedure TFrmMain.FileParse(strFile : string);
var
Datei: TextFile;
strZeile, strCommand, strParam : string;
RegEx, RegExLine : TRegExpr;
intCountDownloads, intMaxDownloads : integer;
begin
intCountDownloads := 0;
intMaxDownloads := 0;
RegEx := TRegExpr.Create;
RegExLine := TRegExpr.Create;
RegEx.Expression := '^\s*(\w+)\s*\=(.+)\s*\;$';
AssignFile(Datei, strFile);
Reset(Datei);
while not eof(Datei) do
begin
ReadLn(Datei, strZeile);
if RegEx.Exec(strZeile) then
begin
strCommand := RegEx.Match[1];
strParam := RegEx.Match[2];
if strCommand = 'create_directory' then
begin
if not DirectoryExists(strParam) then
CreateDir(strParam);
end else if strCommand = 'download' then
begin
RegExLine.Expression := '^\s*(.+)\s*\;(.+)\s*';
if RegExLine.Exec(strParam) then
begin
inc(intCountDownloads);
if intMaxDownloads > 0 then
begin
LabelFileNummer.Caption := IntToStr(intCountDownloads) + ' / ' + IntToStr(intMaxDownloads);
end else begin
LabelFileNummer.Caption := IntToStr(intCountDownloads);
end;
HTTPDownloadFile(RegExLine.Match[1],RegExLine.Match[2]);
ProgressBarAll.StepIt;
end;
end else if strCommand = 'downloads' then
begin
intMaxDownloads := strtoint(strParam);
ProgressBarAll.Max := intMaxDownloads;
end else if strCommand = 'exit' then
begin
CloseFile(Datei);
Application.Terminate;
end;
end;
end;
CloseFile(Datei);
end;
Danke für jede Anmerkung und Idee
Gruß, Real-TTX