Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Работа с текстом...   Найти похожие ветки 

 
PaR   (2004-03-16 14:50) [0]

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

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]<>"&#205;" 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 мб оперативной памяти , а файл подкачки не используется вообще ,
может ключи какие надо в компиляторе прописать

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


 
ss   (2004-03-16 14:57) [1]

а почему нельзя использовать базу данных?


 
KSergey ©   (2004-03-16 14:58) [2]

А если читать строки и сразу писать их в БД?

> как сделать так чтоб во время выполнения программа не создавала
> впечатление "зависшей"

Application.ProcessMessages


 
KSergey ©   (2004-03-16 15:00) [3]

> KSergey ©   (16.03.04 14:58) [2]
> А если читать строки и сразу писать их в БД?

В смысле без промежуточного складирования в массиве?


 
Max_Ivanych ©   (2004-03-16 15:02) [4]

Брате! Зачем так сложно?
Загрузи содержимое в StringList.LoadFromFile, а потом построчно, с проверочкой в цикле гони в свою базу...


 
Anatoly Podgoretsky ©   (2004-03-16 15:09) [5]

В начале идет обращение к пустому массиву.



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1079419382
Dastin
2004-03-16 09:43
2004.04.04
Delphi


6-1075074207
Daniel
2004-01-26 02:43
2004.04.04
Какое различать сокеты?


14-1078488148
Rouse_
2004-03-05 15:02
2004.04.04
Такого давно не видел ;)))


3-1078820393
wizz
2004-03-09 11:19
2004.04.04
как передать в переменную результат запроса?


3-1078394011
vovchik
2004-03-04 12:53
2004.04.04
универсальная строка подключния