работа с текстом
От: par  
Дата: 16.03.04 11:57
Оценка:
вопрос вот какой :
Мне нужно загрузить из текстового файла
записи для последующего анализа,
разделенные между собой построчно
вобщем мой код выглядит так


Procedure LoadDet(FileName:string) ;
var
    DetFile:TextFile;
    CurStr:string;
    I:integer;
    Code:integer;
begin
  I:=0   ;
  SetLength(Details,1);

 AssignFile(DetFile,FileName);
 Reset(DetFile);
   while not SeekEoF(DetFile) do
   begin
   Readln(DetFile,CurStr);
   If CurStr[1]<>'Í' then
    begin
     Details[i].Phone := StrToInt64(Trim(LeftStr(CurStr,11)));
         <........>     
     Details[i]._Type := Trim(MidStr(CurStr,126,14));
     Details[i].SVC_type := Trim(MidStr(CurStr,141,30));
     SetLength(Details,I+2) ;
     I:=I+1;
    end;
   end;

CloseFile(DetFile) ;


В массив всё ложиться как положено(Details — это массив записей)

type
   Det=Record
   Phone:int64;
   Date:String;
   _Time:string;
   RealTime:String;
   RoundTime:String;
   Price:real;
   TelIn:String;
   TelOut:String;
   Dir:String;
   Chanel:String;
   _Type:String;
   SVC_type:String;
end;

Var
Details:array of Det;


затем
я объявляю рекордсет и добавляю ему поля соответсвующие
так вот при попытке сделать .CreateRecordset или .Open ОНО мне пишет что-то вроже "Can't load Midas.dll" либо , если файл чуть поменьше, "...raised ..NotEnoughMemory"
если файл маленький то всё ОК однако в моём варианте размер файла порядка 3,5 мб и будет расти ...

подскажите плз что делать

я посмотрел в таск манагере остется ок 10 мб оперативной памяти , а файл подкачки не используется вообще ,
может ключи какие надо в компиляторе прописать

и есчо вопрос :как видно грузится всё вутри цикла ,так вот как сделать так чтоб во время выполнения программа не создавала впечатление "зависшей"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.