Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1216494439
User
2008-07-19 23:07
2008.08.31
О результате трудов - откомпилированных файлах ...


15-1215505036
Фленов М.
2008-07-08 12:17
2008.08.31
Собеседование


11-1192972349
Dodfr
2007-10-21 17:12
2008.08.31
Problem with 2.83 since 2.53


15-1215263672
Fredy314
2008-07-05 17:14
2008.08.31
Вычисление crc32 по частям


1-1197276566
BoxTer
2007-12-10 11:49
2008.08.31
Копирование данных между листами Excel





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