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

Вниз

Простая независимая база данных (типа таблицы) для записи в файл   Найти похожие ветки 

 
textExpanser   (2008-07-23 11:52) [0]

Посоветуйте чем можно попроще сохранить набор записей в файл.
Есть список (TList) обычных записей (MyRec = record ... end;)
Нужно сохранить это хозяйсто в файл в каком-то контейнере. Начал писать свой, но подумал, что это же типичная база данных. Поэтому нужно что-то типа простой базы данных только для хранения списка в файле-контейнере.

Важно, чтобы не использовалось BDE/ADO и другие громоздкие технологии, и размер библиотеки не был большим.
Данные: Требования к поддержке данных: в основном, чтобы бинарные данные были неограниченной (почти) длины или хотя бы не менее 10 кБ. И еще неплохо бы строки поддерживать (лучше и AnsiString, и WideString), тоже такой же длины.

DBF не подходит, т.к. там ограничения на длину.


 
oldman ©   (2008-07-23 11:55) [1]

writeln в простой текстовый файл


 
stas ©   (2008-07-23 12:01) [2]


> BDE/ADO и другие громоздкие технологии,

чем они громоздки?


 
textExpanser   (2008-07-23 12:03) [3]

oldman:
Я же сказал, что самому писать нет смысла. Нужен не простой текстовый файл, а КОНТЕЙНЕР для таблицы разнородных данных. Я уже писал много custom-форматов и знаю, что в данном случае рациональнее использовать что-то типа DBF таблицы, но у DBF есть ограничения на длину строк и данных, насколько я помню (поэтому DBF не подходит, нужен другой формат).


 
textExpanser   (2008-07-23 12:06) [4]

stas:

> > BDE/ADO
> чем они громоздки?

А зачем по-твоему делают компоненты для работы без них? Чтобы не зависеть от них, вот зачем.
Мне не нужна поддержка баз данных, только простое сохранение в файл моих данных.


 
Sergey13 ©   (2008-07-23 12:09) [5]

Клиентский датасет с сохранением в файл?


 
stas ©   (2008-07-23 12:10) [6]

textExpanser   (23.07.08 12:06) [4]
CxGrid


 
MsGuns ©   (2008-07-23 12:18) [7]

>Sergey13 ©   (23.07.08 12:09) [5]
>Клиентский датасет с сохранением в файл?

Он всем хорош, кроме одного маленького, но паршивенького нюанса - ему нужен midas.dll, а с ним могут быть проблемы, если на пользователький ПК позже устанавливается делфа


 
Anatoly Podgoretsky ©   (2008-07-23 12:23) [8]

> textExpanser  (23.07.2008 12:03:03)  [3]

Разнородных данных, а как же ты будешь это записывать в таблицу то?
Разнородные данные можно писать в Компаундное Хранилище - c этим к Микрософту, но зато это часть системы.


 
Anatoly Podgoretsky ©   (2008-07-23 12:24) [9]

> textExpanser  (23.07.2008 12:06:04)  [4]

Странная логика, от BDE/ADO не хочем зависить, зато со взвизгом идем на другую зависимость, вероятнее всего малораспространеную.


 
Anatoly Podgoretsky ©   (2008-07-23 12:25) [10]

> textExpanser  (23.07.2008 12:06:04)  [4]

> Мне не нужна поддержка баз данных, только простое сохранение в файл моих данных.

CompaundFile/CompaundStorage

Вот только ни о каком простом сохранение РАЗНООБРАЗНЫХ данных говорить не приходится, противоречит логике.


 
Медвежонок Пятачок ©   (2008-07-23 12:26) [11]

без тени сомнения - xml.


 
Anatoly Podgoretsky ©   (2008-07-23 12:26) [12]

> Sergey13  (23.07.2008 12:09:05)  [5]

Зависимость от Midas


 
textExpanser   (2008-07-23 12:35) [13]

XML - очень медленно для больших списков записей (таблиц)
MS Compaund/Sorage - проще тогда свой контейнер написать, чем с ним разобраться (+зависимость от версии, +нужно сохранение _списка записей_ [а это типичная таблица], а не хранение разнородных данных в виртуальной файловой системе, которая тормозит, если много "файлов").

Это не датасет и не таблица. Просто список записей. Я хочу создавать таблицу только для записи этого списка records в файл, а потом ее разрушать.
Нужен компонент или библиотека для сохранения в какой-нибудь формат (сойдет новая версия dbf, если в нем не будет ограничений на длину).


 
Медвежонок Пятачок ©   (2008-07-23 12:36) [14]

Ну тогда парься сам и не парь людям моск.
Поуговаривать тебя еще что ли?


 
oldman ©   (2008-07-23 12:41) [15]


> textExpanser   (23.07.08 12:03) [3]


Не хочешь в текст, пиши в inifile


 
oldman ©   (2008-07-23 12:46) [16]


> textExpanser   (23.07.08 12:35) [13]
> XML - очень медленно для больших списков записей (таблиц)


А зачем их писать-читать во время работы проги?
Может только при старте и завершении?
А вот тут можно и подождать, не так уж и долго...


 
Правильный$Вася   (2008-07-23 13:06) [17]


>  но у DBF есть ограничения на длину строк и данных

глупости
блобы есть и в нем


 
textExpanser   (2008-07-23 13:25) [18]

А переменная длина строк в dbf есть? WideString? Уговаривать не надо - ни txt, ни ini, ни compound не подходят. Задача определена четко - нужен коспонент, сохраняющий кучу record"s (по сути таблицу данных) в database файл.

И я попросил название проверенной библиотеки/компонента... ;)


 
oldman ©   (2008-07-23 13:27) [19]


> определена четко - нужен коспонент, сохраняющий кучу record"s
> (по сути таблицу данных) в database файл.


Курсач?


 
Anatoly Podgoretsky ©   (2008-07-23 13:49) [20]

> textExpanser  (23.07.2008 13:25:18)  [18]

Брось ты талдычить record - если record, то ни каких разнообразных и произвольных данных не может быть и в принципе.


 
Anatoly Podgoretsky ©   (2008-07-23 13:49) [21]

> textExpanser  (23.07.2008 13:25:18)  [18]

Процедура write из WinAPI или TFileStream из VCL


 
palva ©   (2008-07-23 13:56) [22]


> Задача определена четко - нужен коспонент, сохраняющий кучу
> record"s (по сути таблицу данных) в database файл.
>

Такой компонент малополезен. Для того чтобы описать для универсального компонента, что и в каком формате сохранять понадобится примерно столько же усилий, что и сохранить эти данные в файл непосредственно файловыми функциями.


 
Правильный$Вася   (2008-07-23 14:12) [23]


> А переменная длина строк в dbf есть? WideString?

blob - пиши чего хочешь: хоть строки, хоть биты, хоть юникод, хоть черта лысого архивируй
или ты пытаешься доказать, что оно тебе неподходит, вместо того, чтоб найти, что тебе подходит?
тогда тебе на площадь, к митингующим


 
Anatoly Podgoretsky ©   (2008-07-23 14:20) [24]

> palva  (23.07.2008 13:56:22)  [22]

Да какая разница, написать компонент, что бы замаскировать работу с файлами, минут 5 работы, на основе TFileStream


 
textExpanser   (2008-07-23 14:45) [25]


> blob - пиши чего хочешь


Согласен! Беру! Теперь название компонета или библиотеки бы узнать?... :)


 
Правильный$Вася   (2008-07-23 15:25) [26]

http://kylecordes.com/bag/list.html


 
oldman ©   (2008-07-23 15:28) [27]


> textExpanser   (23.07.08 14:45) [25]
>
> > blob - пиши чего хочешь
>
>
> Согласен! Беру! Теперь название компонета или библиотеки
> бы узнать?... :)


ну вот за что нам все это?


 
Johnmen ©   (2008-07-23 15:33) [28]


> MsGuns ©   (23.07.08 12:18) [7]
> Он всем хорош, кроме одного маленького,
>  но паршивенького нюанса - ему нужен midas.dll,

Это уже давным-давно не так. Где-то с 6 версии...


 
Anatoly Podgoretsky ©   (2008-07-23 15:40) [29]

> textExpanser  (23.07.2008 14:45:25)  [25]

TAdoConnection/TAdoDataset/TAdoCommand/TDataSource/TDBGrid - все


 
Anatoly Podgoretsky ©   (2008-07-23 15:42) [30]

> Johnmen  (23.07.2008 15:33:28)  [28]

Что не так, ты смотрел список версий Дельфи?
И на каких ОС все это должно работать.
Это явно какая то девелоперская контора.


 
Johnmen ©   (2008-07-23 15:48) [31]


> Anatoly Podgoretsky ©   (23.07.08 15:42) [30]

Ну MsGuns сказал же безотносительно версий.
А что там у аффтара - мне безразлично, я с Ганзом перетираю :)


 
Нат   (2008-07-25 03:02) [32]

ADO - входит в стандартную Вынду начиная с ХРюши


 
Правильный$Вася   (2008-07-25 10:47) [33]


> Нат   (25.07.08 03:02) [32]

ты невнимательно
> 95/98, ME, NT4, 2000, XP, 2003]


 
MsGuns ©   (2008-07-25 14:35) [34]

>Johnmen ©   (23.07.08 15:33) [28]
>>  но паршивенького нюанса - ему нужен midas.dll,
>Это уже давным-давно не так. Где-то с 6 версии...

У меня 7-я. Приложение не работает на клиенте, если не установлен мидас (просто не скопирован в один из сич-каталогов) - так и говорит, что нема мидаса.
Причем вот какая фигня наблюдается - на клиенте я ставлю приложение и копирую  мидас в каталог с программой и все расчудесено пляшет. Ровно до тех пор,  пока я не устанавливаю на этот комп делфу (по барабану какая версия - по крайней мере до 7 вкл-но). И с этого момента программа работать перестает и датасетом - просто молча не выполняет LoadFromFile. Для того, чтобы все зафурычило, нужно "ручками" в реестре везде подправить путь к библиотеке.


 
Игорь Шевченко ©   (2008-07-25 15:03) [35]


> Для того, чтобы все зафурычило, нужно "ручками" в реестре
> везде подправить путь к библиотеке.


regsvr32 /u midas.dll
regsvr32 midas.dll


 
Правильный$Вася   (2008-07-25 15:35) [36]


> MsGuns ©   (25.07.08 14:35) [34]

uses MidasLib;
заменяет dll и уже не зависишь от каких-то неизвестной версии библиотек


 
Anatoly Podgoretsky ©   (2008-07-25 15:56) [37]

> Правильный$Вася  (25.07.2008 15:35:36)  [36]

Шутник в Д2-Д5


 
Правильный$Вася   (2008-07-25 16:36) [38]


> Anatoly Podgoretsky ©   (25.07.08 15:56) [37]

это не автору, это ганзу



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

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

Наверх




Память: 0.56 MB
Время: 0.014 c
15-1215684599
AlexanderMS
2008-07-10 14:09
2008.08.31
Программа для уменьшения количества цветов на изображении.


2-1216895849
Ilg
2008-07-24 14:37
2008.08.31
Папка пуста - ?


3-1204266576
Barsky
2008-02-29 09:29
2008.08.31
Правильный запрос на FireBird SQL


2-1216902939
Alex_C
2008-07-24 16:35
2008.08.31
Как правильно дождаться сбытия?


1-1198005654
Punch
2007-12-18 22:20
2008.08.31
MDI и мерцания MDIChild