cuhedg написав:procedure TForm1.Button1Click(Sender: TObject);
var
F:TStringList;
i,j,kol:integer;
S:String;
begin
kol:= 0;
F:=TStringList.Create;
If OpenDialog1.Execute then
begin
F.loadfromfile(OpenDialog1.FileName);
For i:=0 to F.Count-1 do
if (Pos('!', F.Strings[i]) = 1) then kol:=kol+1;
ShowMessage(IntToStr(kol));
end;
F.Free;
end;
так краще але теж погано... а якщо станеться OutOfMemory (закінчилась оперативка), або не та фаза місяця?
потрібно обгортати роботу на виділеною пам'яттю в try finally і як на мене об'єкт треба створювати безпосередньо перед використанням
procedure TForm1.Button1Click(Sender: TObject);
var
F:TStringList;
i,j,kol:integer;
S:String;
begin
kol:= 0;
If OpenDialog1.Execute then
begin
F:=TStringList.Create;
try
F.loadfromfile(OpenDialog1.FileName);
For i:=0 to F.Count-1 do
if (Pos('!', F.Strings[i]) = 1) then kol:=kol+1;
ShowMessage(IntToStr(kol));
finally
F.Free;
end;
end;
end;
ПС: до ТС: якщо ви цікавитесь програмуванням - дотримуйтесь стилю форматування (стилю Borland - він стандартний для делфі)