Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
3-1078379359
Vemer
2004-03-04 08:49
2004.04.04
Обновление вычисляемого поля...


1-1078754983
Dest
2004-03-08 17:09
2004.04.04
Картинка в меню


6-1074693713
zxc
2004-01-21 17:01
2004.04.04
про send


6-1075273288
frost
2004-01-28 10:01
2004.04.04
Общение по сети.


3-1078931851
Ceval
2004-03-10 18:17
2004.04.04
упорядочить таблицу ...про помоци CheckBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский