Главная страница
    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.45 MB
Время: 0.034 c
3-1078819320
denik
2004-03-09 11:02
2004.04.04
Каким образом выйти из режима редактирования?


11-1058198809
Кладов
2003-07-14 20:06
2004.04.04
Тестирование программ


1-1079341340
TUser
2004-03-15 12:02
2004.04.04
Оптимизатор


1-1078996913
Дас Виндовс 45
2004-03-11 12:21
2004.04.04
Сортировка массива


1-1079588019
Лысый
2004-03-18 08:33
2004.04.04
QuickReport





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский