Главная страница
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.022 c
7-1074492835
Dmitriy_G
2004-01-19 09:13
2004.04.04
Как мне проверить наличие сигнала CTS, в COM


14-1078512108
TButton
2004-03-05 21:41
2004.04.04
В порядке ознакомления


14-1078850059
satron
2004-03-09 19:34
2004.04.04
Где скачать компонент ?


8-1070710296
Astarot
2003-12-06 14:31
2004.04.04
Модем + звук + телефон


11-1058329802
Александр |
2003-07-16 08:30
2004.04.04
Ресурсы