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

Вниз

Большие текстовые файлы   Найти похожие ветки 

 
Yusuf ©   (2006-08-05 20:13) [0]

Доброго времени суток.

Подскажите, пожалуйста, есть ли способ быстро работать с большими текстовыми файлами (около 17 Мб), при чем текстовый файл представляет собой что-то вроде базы данных. Запись в файле ведется следующим образом (пример):

Работник = {
 возраст = 25
 пол = муж
 должность = уборщик
 }
...

Автомобиль = {
 Марка = ВАЗ21010
 Номер = х001хх
 }
...

Заранее благодарю.


 
Ketmar ©   (2006-08-05 20:59) [1]

есть. написать отптимизированный код.


 
Yusuf ©   (2006-08-05 21:01) [2]

А подробнее можно?


 
Loginov Dmitry ©   (2006-08-05 21:10) [3]

Для начала: использовать функции для записи в файл и для чтения из него.


 
Пусик ©   (2006-08-05 23:45) [4]


> Yusuf ©   (05.08.06 20:13) 


Для файла такого небольшого размера вполне возможно для обработки воспользоваться TStringList.

var
 L: TStringList:
 i: Integer;
begin
 L := TStringList.Create;
 try
   L.LoadFromFile("MyFile.txt");
   for i := 0 to L.Count-1 do
   begin
//Обработка построчно
   end;
 finally
   L.Free;
 end;


Также можно, не загружая весь файл целиком, рабоьать с ним построчно.
См. TextFile, ReadLn, WriteLn
+ поиск по форуму.


 
Virgo_Style ©   (2006-08-06 09:00) [5]

imho 17Mb - уже достаточно приличный размер.
Я бы рекомендовал прочитать статью про оптимизацию работы со строками, в свое время она мне весьма помогла.
При возможности - переделать для работы с БД.
Конечно, неплохо бы [1], для более детальных советов надо описать типичные задачи, например, нужен ли поиск, как часто и куда (в конец или в середину) происходит добавление данных, и т.п.


 
KilkennyCat ©   (2006-08-06 10:39) [6]

Зафиксировать размер каждой записи, например, дополнив пробелами.


 
Yusuf ©   (2006-08-06 11:28) [7]

1. Чаще всего поиск ведется в конец.
2. В каждом блоке может быть разный набор даныых. Например, в одном у работника возраст отмечен, в другом - нет.
3. Добавление данных не происходит.


 
Anatoly Podgoretsky ©   (2006-08-06 14:53) [8]

Пересмотреть идеологию.


 
Ketmar ©   (2006-08-06 15:09) [9]

> [7] Yusuf ©   (06.08.06 11:28)


> поиск ведется в конец

долго думал. пытался представить. не смог.


 
KilkennyCat ©   (2006-08-06 15:24) [10]

> [9] Ketmar ©   (06.08.06 15:09)

:)


> Yusuf ©   (06.08.06 11:28)


Если воспользоваться предложением [8], то типизированный файл - наиболее просто. Мой же совет [6] практически этому равен, усложнен лишь требованием сабжа к формату файла.



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

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

Наверх




Память: 0.49 MB
Время: 0.029 c
3-1150185728
Still Swamp
2006-06-13 12:02
2006.08.27
Как восстановить FB базу из скрипта


15-1154412475
Карелин Артем
2006-08-01 10:07
2006.08.27
bahoor - что тако?


1-1153160195
Pashka.cool
2006-07-17 22:16
2006.08.27
Как из одного приложения определять контролы другого, на клик мыш


15-1154424567
tsa
2006-08-01 13:29
2006.08.27
Головокружение от успехов


1-1152890975
lookin
2006-07-14 19:29
2006.08.27
Чтение/запись сведений в ini-файл через компонент