![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
зависание проги при чтении из файла в цикле [D7, XP]
_Tirex_ © (2006-01-26 18:15:00)есть такой код, при выполнении прога зависает?
в файле телефонные номера(цифр 10) в столбик,
procedure TForm1.FormCreate(Sender: TObject);
begin
First_lst:=TStringLIst.Create;
First_lst_count:=0;
od1.InitialDir:=ExtractFileDir(Application.ExeName);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
First_lst.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if od1.Execute then
begin
load1list(od1.FileName);
ListBox1.Items:=First_lst;
end;
end;
procedure load1list(fn: string);
var
temp_str: string;
begin
AssignFile(First_lst_file,fn);
Reset(First_lst_file);
repeat
read(First_lst_file,temp_str);
First_lst.Add(temp_str);
until eof(First_lst_file);
{ while not eof(First_lst_file) do;
begin
read(First_lst_file,temp_str);
First_lst.Add(temp_str);
end;
}
CloseFile(First_lst_file);
end;
_Tirex_ (2006-01-26 20:04:00) [1]2 Fay
спасибо за оптимизацию,
2 umbra
спасибо! не обратил внимания.
umbra (2006-01-26 18:30:00) [2]
repeat
readln(First_lst_file,temp_str);
First_lst.Add(temp_str);
until eof(First_lst_file);
В Вашем кодеreadчитает первую строку, а затем бесконечно возвращает пустую строку, поскольку не может пройти символы конца строки
Fay (2006-01-26 18:28:00) [3]В смысле
procedure TForm1.load1list(fn: string);
...
Fay (2006-01-26 18:27:00) [4]ку?
procedure load1list(fn: string);
var
sl : TStringList;
begin
sl := TStringList.Create;
try
sl.LoadFromFile(fn);
First_lst.AddStrings(sl);
finally
sl.Free;
end;
end;