Очень нужна помощь в решении следующей проблемы: мне необходимо загружать содержимое текстового файла (цифры) в Memo и оттуда загонять их в массив. Код такой:
- Код: Выделить всё
unit Unit1;
......
private
{ private declarations }
x : array[1..input] of real;
....
procedure TForm1.Button2Click(Sender: TObject);
var dir, filename, name_ : String;
k, r, i, j, f, p, iz : Integer;
SearchRec : TSearchRec;
str, s : String;
begin
dir := DirectoryEdit1.Directory;
dir := dir + '\';
for k := 1 to n do begin
FindFirst(dir + '*.txt', faAnyFile, SearchRec);
filename := dir + SearchRec.Name;
name_ := SearchRec.Name;
while (FindNext(SearchRec)=0) do begin
Memo1.Lines.LoadFromFile(filename);
str := Memo1.Lines[0];
s := '';
f := 1;
for i := 1 to Length(str) do
if str[i] <>' ' then s := s + str[i]
else begin
x[f] := StrToFloat(s); s := '';
inc(f);
end;
filename := dir + SearchRec.Name;
name_ := SearchRec.Name;
end; {WHILE}
end; {k}
for i := 1 to 30 do
Memo1.Lines.Add(IntToStr(i)+'-->'+FloatToStr(x[i]));
end;
initialization
{$I unit1.lrs}
end.
Безусловно, ошибки могут быть, но странно поведение Lazarus'а: если в директории находится только один текстовый файл, то программа срабатывает, однако в цикл while не заходит... если же файлов 2 или больше, то при нажатии на кнопку button2 приложение просто выключается... Честно говоря, не знаю, в чем может быть причина...
Либо у Lazarus'а проблемы с Memo, либо у меня в коде
Пробовал убрать строки, где пишется информация в Memo - тогда всё работает...
(P.S. - ОС Windows XP, Lazarus 0.9.24 beta)
Заранее благодарен за любую помощь.