Показать сообщение отдельно
  #4  
Старый 04.10.2014, 00:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Как уже говорил, ничего особенного в коде не вижу.
Давай попробуем переделать на список и объекты.
Код:
type
  TDataObject = class
    X, Y, Z : Double; // тип real лучше не использовать.
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  myFile : TextFile;
  AData : TObjectList;
  ADataObj : TDataObject;
  text1: string;
  n : Integer;
begin
Try
begin
  AData := TObjectList.Create(True); 
  // открытие файла для чтения
  AssignFile(myFile, 'dump.txt');
  Reset(myFile);
  while not Eof(myFile) do
  begin
    Readln(myFile,text1);
    ADataObj := TDataObject.Create;
    ADataObj.x := readnumber(text1,2);
    ADataObj.y := readnumber(text1,3);
    ADataObj.z := readnumber(text1,4);
    AData.Add(ADataObj);
  end;

  // Закрытие файла
  CloseFile(myFile);

  // Диагностика
  n := AData.Count-1;
  ADataObj := AData[n] As TDataObject;
  ShowMessage( Format('%d %f %f %f', [n,ADataObj.x,ADataObj.y,ADataObj.z]));
Finally
  AData.Free;
end;
end;

Если не поможет, то надо будет "рыть" твою процедуру парсинга.

ЗЫ. Кстати, в такой редакции можешь выкинуть свою процедуру определения длинны файла
Ответить с цитированием