Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
ВнизПростая независимая база данных (типа таблицы) для записи в файл Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.007 c