Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Почему не работает цикл? (https://forum.antichat.xyz/showthread.php?t=157492)

SultanOFF 18.11.2009 15:58

Почему не работает цикл?
 
Здравствуйте. Делаю цикл:
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
ho: integer;
sv:string;
Reg2: TRegExpr;
begin
Reg2 := TRegExpr.Create;
 Reg2.Expression:= '-?\d+';
for ho := 0 to memo2.Lines.Count - 1 do
begin
if Reg2.Exec(memo2.Lines[ho]) then
begin
Reg2.ExecNext;
sv:= 'c:\xxx\'+reg2.Match[0]+'.zip';
DownloadFile(memo2.Lines[ho], sv);
Zip1.FileName:=sv;
Zip1.OpenArchive;
Zip1.DeleteFiles('*.html*', faAnyFile, '.rtf');
Zip1.Comment:='BLABLABLA;
Zip1.CloseArchive;
Reg2.Expression:= '<title>(.*?)</title>.*?description" content="(.*?)">';
downloadurl(memo1.Lines[ho]);
if Reg2.Exec(memo3.Text) then      //исходный код html загружается в memo3
begin
label1.caption:=(reg2.Match[1]);
label2.caption:=(reg2.Match[2]);
end;
memo3.Clear;
end;
end;

но цикл выполняется только для первого файла, дальше не работает :( Отчего и почему? Да кстати если сделать просто вот так:
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
ho: integer;
sv:string;
Reg2: TRegExpr;
begin
Reg2 := TRegExpr.Create;
 Reg2.Expression:= '-?\d+';
for ho := 0 to memo2.Lines.Count - 1 do
begin
if Reg2.Exec(memo2.Lines[ho]) then
begin
Reg2.ExecNext;
sv:= 'c:\marsel\'+reg2.Match[0]+'.zip';
DownloadFile(memo2.Lines[ho], sv);
Zip1.FileName:=sv;
Zip1.OpenArchive;
Zip1.DeleteFiles('*.html*', faAnyFile, '.rtf');
Zip1.Comment:='Marsel';
Zip1.CloseArchive;
end;
end;

то работает smile

Gar|k 18.11.2009 16:07

эммм тупо щитаем begin-ы 3 штуки end; две штуки
слушай есть этикет программистов http://pers.narod.ru/study/pascal/p6.html

оформляй код по человеческому блин

SultanOFF 18.11.2009 17:44

хм исправил на вот так
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
ho: integer;
sv:string;
Reg2: TRegExpr;
begin
Reg2 := TRegExpr.Create;
 Reg2.Expression:= '-?\d+';
for ho := 0 to memo2.Lines.Count - 1 do
begin
  if Reg2.Exec(memo2.Lines[ho]) then
  begin
  Reg2.ExecNext;
  sv:= 'c:\marsel\'+reg2.Match[0]+'.zip';
  end;
DownloadFile(memo2.Lines[ho], sv);
Zip1.FileName:=sv;
Zip1.OpenArchive;
Zip1.DeleteFiles('*.html*', faAnyFile, '.rtf');
Zip1.Comment:='Marsel';
Zip1.CloseArchive;
Reg2.Expression:= '<title>(.*?)</title>.*?description" content="(.*?)">';
downloadurl(memo1.Lines[ho]);
  if Reg2.Exec(memo3.Text) then
  begin
  showmessage(reg2.Match[1]);
  showmessage(reg2.Match[2]);
  end;
memo3.Clear;
end;

end;

но все равно не получается! Отчего? :(

DeaD_MoroZ 20.11.2009 03:33

procedure TForm1.Button1Click(Sender: TObject);
var
ho: integer;
sv:string;
Reg2: TRegExpr;
begin
Reg2 := TRegExpr.Create;
Reg2.Expression:= '-?\d+';
for ho := 0 to memo2.Lines.Count - 1 do
begin
if Reg2.Exec(memo2.Lines[ho]) then
begin
Reg2.ExecNext;
sv:= 'c:\marsel\'+reg2.Match[0]+'.zip';
end; <---убери, и поставь в конце
DownloadFile(memo2.Lines[ho], sv);
Zip1.FileName:=sv;
Zip1.OpenArchive;
Zip1.DeleteFiles('*.html*', faAnyFile, '.rtf');
Zip1.Comment:='Marsel';
Zip1.CloseArchive;
Reg2.Expression:= '<title>(.*?)</title>.*?description" content="(.*?)">';
downloadurl(memo1.Lines[ho]);
if Reg2.Exec(memo3.Text) then
begin
showmessage(reg2.Match[1]);
showmessage(reg2.Match[2]);
end;
memo3.Clear;
end;

end;


Время: 12:09