Как уже говорил, ничего особенного в коде не вижу.
Давай попробуем переделать на список и объекты.
Код:
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;
Если не поможет, то надо будет "рыть" твою процедуру парсинга.
ЗЫ. Кстати, в такой редакции можешь выкинуть свою процедуру определения длинны файла
