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

Вниз

работа с файлами   Найти похожие ветки 

 
картман ©   (2010-09-22 14:08) [0]

Всем привет!
 Данные вида:
           col1  col2 col3
   row1   x      0     x
   row2   0      x     x
   row3   x      x     0

 надо хранить в файле. row - строка переменной длины, col - Integer, x - Double, Где стоит 0 значение отсутствует.
 Как хранить?
 Думаю так: первый байт - длина строки, за строкой - кол-во записей и т.д.
 [LenStr,StrData,CntRec,[Recs]]
Так пойдет, с точки зрения скорости?
И подскажите еще, какими функциями осуществлять доступ(желательно апишными - потом на с++ надо будет переписать)


 
Сергей М. ©   (2010-09-22 14:12) [1]


> желательно апишными - потом на с++ надо будет переписать


Из сишных прог ADO-объекты доступны так же как из дельфийских.
Так что возьми ADODataSet и не парься с форматом - там уже все изобретено и не самым худшим образом


 
Palladin ©   (2010-09-22 14:12) [2]


> Думаю так: первый байт - длина строки, за строкой - кол-
> во записей и т.д.

ну а чего бы не пойти... все-же ходят )
тут дело в другом.... делфи или сипп(ц) без разници... буфферэд ридер + ридер в структуру... одинаково....


 
картман ©   (2010-09-22 14:22) [3]


> Сергей М. ©   (22.09.10 14:12) [1]


обязательно подумаю. Кстати, насчет ado и там, и там... кажись, этот великий и могучий требует нехилых усилий, чтобы просто подключиться к БД и сделать селект?


> Palladin ©   (22.09.10 14:12) [2]

пасиб. А можно их по аглицки написать?


> тут дело в другом.... делфи или сипп(ц) без разници

ну, это чтобы не советовали StringList.LoadFromFile

а отображение файлов в память - имеет смысл только для больших размеров?


 
Palladin ©   (2010-09-22 14:33) [4]

Есть такое понятие. Стрёмы. Кстати гениальное. В Делфи они тоже со Стрёма начинаются. И в Джява (хоть немножко запутанно, но тут виноваты не мы а создатели класса Вектор). А дальше от Стрёма начинается куча ответвлений, что не суть есть важно. Важно то что еще есть и Ридеры из Стрёмов. Ридерам пофени откуда они ридят из МемориСтрёма, ФайлоСтрёма или еще какого нибудь пошлого ТиСиПиСтрёма. Основная задача Ридеров - прочитать Структуру из Стрёма.
Идея БуффередСтрёма заключается в чтении из абстрактного Стрёма целыми кусками, прямо таки железобетонными, по мехабайту или двум. Предоставляя структурное чтение из себя Ридерам.
В результате рождается феномен пофигизма Ридером по отношению к своим метода чтения из Стрёмов.


 
картман ©   (2010-09-22 14:35) [5]


> Palladin ©   (22.09.10 14:33) [4]

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


 
Сергей М. ©   (2010-09-22 14:37) [6]


> картман ©   (22.09.10 14:22) [3]


> этот великий и могучий требует нехилых усилий, чтобы просто
> подключиться к БД и сделать селект?


Ну кое-каких - да, требует. Вопрос лишь в том какие усилия считать "нехилыми" ..

А собссно к селекту твоя задача какое отношение имеет ?
Вроде никакого ..


 
Palladin ©   (2010-09-22 14:40) [7]

Плин... да Ридер не читает больших кусков из Стрёма. Он читает своими, нужными ему кусками, по байту, по двум, 15, 67. А вот Стрём, из которого он читает, обеспечивает ему буфферезированную отдачу информации. То бишь, Ридер запросил 4 байта (длинну строки), причем он (Ридер) даже понятия не имеет откуда он ее читает, а БуффередСтрём увидев данное непосредство, прочитал 4 байта из файла (сети, памяти) и еще РазмерБуффераБуффераСтрёма-4 байтов. И далее, когда ридер запрашивает, дальнейшие данные, БуффередСтрём уже выдает ему из буффера.
Все просто как банан.


 
картман ©   (2010-09-22 14:41) [8]


> Сергей М. ©   (22.09.10 14:37) [6]


> Вопрос лишь в том какие усилия считать "нехилыми" ..

в сравнении с киданием TADOConnection на форму


> А собссно к селекту твоя задача какое отношение имеет ?
> Вроде никакого ..

ааа... ADO может не только с БД работать? Сразу с файлом? Не знал.


 
картман ©   (2010-09-22 14:42) [9]


> Palladin ©   (22.09.10 14:40) [7]

ага, усё понятно


 
картман ©   (2010-09-22 14:46) [10]


> > А собссно к селекту твоя задача какое отношение имеет
> ?
> > Вроде никакого ..

это я нарушаю правила форума - задаю другой вопрос


 
Сергей М. ©   (2010-09-22 14:52) [11]


> в сравнении с киданием TADOConnection на форму


)

Ну, положим, разница в нехилости при кидании в дизайн-тайм и рантайм-создании компонентов  в случае с ADO ничем не отличается случая с не-ADO-компонентами.

Или я тебя неверно понял..


> Сразу с файлом?


Угу. Как и TClientDataSet.
С той лишь разницей что портировать работу с TClientDataSet в приплюснытое приложение ты упаришься, а TADODataSet туда переползет относительно легко.


 
Palladin ©   (2010-09-22 14:56) [12]

А задача, вообще случайно, не сводится ли к передаче рекорсета с одного места в другое? )


 
Andy BitOff ©   (2010-09-22 15:23) [13]

> Palladin ©   (22.09.10 14:33) [4], [7]

Как ты все ясно, прозрачно и доходчиво объяснил =))))


 
картман ©   (2010-09-22 15:25) [14]


> Сергей М. ©   (22.09.10 14:52) [11]

не в .Net или как там назвать правильно? А в ANSI C++. Чего-то я только видел обсуждения какой библиотекой лучше пользоваться: Qt или wxWidget, а в букваре прочел, что можно через ATL. Или я совсем ничего не понял?


> Palladin ©   (22.09.10 14:56) [12]
>
> А задача, вообще случайно, не сводится ли к передаче рекорсета
> с одного места в другое? )

 Ну, концептуально да: в одном случае мне надо ускорить вычисления, которые я провожу на sql server, а в другом - нужно модифицировать данные под свои нужды, но базу трогать нельзя, да и неудобно(долго) с ними работать в БД будет.

А так нет, конечно.


 
картман ©   (2010-09-22 15:27) [15]


> Andy BitOff ©   (22.09.10 15:23) [13]

да в общем понятно - я хотел узнать, нормально ли так делать, а саму суть знал на уровне теории



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

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

Наверх




Память: 0.51 MB
Время: 0.007 c
15-1283699038
Beginner
2010-09-05 19:03
2010.12.12
JEDI для D2009


15-1283511204
DVM
2010-09-03 14:53
2010.12.12
Помогите с переводом на английский одного слова


8-1207933974
DoKi
2008-04-11 21:12
2010.12.12
смешивание 2-х текстур


15-1283271243
Programmist
2010-08-31 20:14
2010.12.12
С началом учебного года


2-1284656353
Первокурсница
2010-09-16 20:59
2010.12.12
Модификация записей в Access с помощью Delphi