![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение в файл большого количества картинок и данных [D7, XP]
igorium © (2011-10-07 09:08:00)Всем привет.
Имеется record в котором 20 полей (integer и string), 3 динамических массива (integer) и картинка.
Имеется переменная, которая является динамическим массивом моего record'а.
Все картинки будут одного размера, если это поможет.
Задача сохранить весь динамический массив в файл, а потом этот файл прочитать.
Как это дело реализовать?
Заранее благодарен.
Дмитрий Белькевич (2011-10-09 10:09:00) [1]http://www.google.com/codesearch#search/&q=IStorage%20lang:%5Epascal$&type=cs
Дмитрий Белькевич (2011-10-09 10:04:00) [2]Посмотри еще это:
IStorage
http://msdn.microsoft.com/en-us/library/windows/desktop/aa380015(v=vs.85).aspx
Anatoly Podgoretsky (2011-10-08 17:28:00) [3]> igorium (08.10.2011 16:19:31) [31]
АДО
igorium (2011-10-08 16:19:00) [4]
> sniknik © (07.10.11 09:44) [3]
> p.s. посоветовал бы из рекорда сделать запись рекордсета,
> и хранить их список (большое количество картинок и данных)
> в рекордсете, да по опыту знаю бесполезно... свой велосипед
> всегда ближе к телу...
Где можно подробно прочитать про Рекордсет?
Сам я первый раз слышу такое название.
DVM (2011-10-08 14:31:00) [5]
> _Юрий (08.10.11 11:22) [29]
> TReader\TWriter - а вот что будет, если мы переименуем свойство?
Ничего не будет, имена свойств не сохраняются, сохраняется тип, размер и сами данные. Проблемы будут если поменять порядок сохранения свойств.
_Юрий (2011-10-08 11:22:00) [6]Все способы имеют недостатки:
Бинарный стриминг - зависимость от версии
TReader\TWriter - а вот что будет, если мы переименуем свойство?
XML - размер и скорость чтения
по нынешним временам наверно лучше все таки XML, мощности позволяют, а удобство налицо
sniknik (2011-10-08 10:51:00) [7]сравнивать концепцию MS с их файлами-заменами прямого доступа к диску, и "местный" последовательный вариант аналог текстового файла только другими фалами вместо строк.... как то даже глупо.
> В XML бинарник?
не проблема если размер не волнует (а и не должен бы). + в варианте рекордсета (ADO) сохранять можно как "xml" так и в бинарном виде, размер будет меньше чем у xml, но больше чем при записи сериализации.
Rouse_ (2011-10-07 23:32:00) [8]
> Медвежонок Пятачок © (07.10.11 14:03) [17]
>
> я бы лучше задался вопросом - а зачем вообще совать какие-
> то файлы в файл.
Этот вопрос лучше сразу перенаправить в MS, ибо как раз вопрос о IStorage концепции, а если вспомнить что на базе IStorage понаделано...
DVM (2011-10-07 17:38:00) [9]
> igorium ©
Вот тут Gunsmoker http://www.gunsmoker.ru/2011/08/blog-post.htmlкак раз начал серию статей про сериализацию. Как раз для тебя. Правда там пока только начало.
Игорь Шевченко (2011-10-07 17:24:00) [10]
> Тогда где можно поподробнее почитать про это?
в classes.pas можно почитать. Начиная с методов TStream.ReadComponent, TStream.WriteComponent
igorium (2011-10-07 17:18:00) [11]
> Игорь Шевченко © (07.10.11 16:24) [23]
>
> > Но мне это не подойдет, т.к. тогда полученный файл я не
>
> > смогу редактировать.
>
> Почему не сможешь ? Загрузи и будет тебе форма
Как в форму DFM динамически загрузить ~50-100 рекордов, каждый из которых состоит из 20 полей (integer и string), 3 динамических массивов (integer) и картинки.
Это реально???
Тогда где можно поподробнее почитать про это?
Игорь Шевченко (2011-10-07 16:24:00) [12]
> Но мне это не подойдет, т.к. тогда полученный файл я не
> смогу редактировать.
Почему не сможешь ? Загрузи и будет тебе форма
igorium (2011-10-07 15:33:00) [13]
> Игорь Шевченко © (07.10.11 15:25) [21]
> > И делаю банальную функцию SAVE, чтобы все сохранить.
>
> Сохраняй форму в DFM
Не знал, что можно сохранить в DFM и потом прочитать его (как я понял это формат формы Дельфи).
Но мне это не подойдет, т.к. тогда полученный файл я не смогу редактировать.
Самое главное - это мой рекорд. Из него я смогу сделать новые панели, а из созданных панелей рекорд я уже не восстановлю :(
Игорь Шевченко (2011-10-07 15:25:00) [14]
> И делаю банальную функцию SAVE, чтобы все сохранить.
Сохраняй форму в DFM
stas (2011-10-07 15:25:00) [15]
> Честно говоря ни разу еще не сохранял в НЕ_текстовый файл.
> Пока слабо представляю реализацию, но думаю в интернете
> найду (если вы подскажите будет еще лучше).
Ключевое слово TStream
Уже об этом писал и - Ega23 © (07.10.11 10:06) [4]
b z (2011-10-07 15:19:00) [16]Ну вот офисные документы, чем не пример?
igorium (2011-10-07 15:16:00) [17]
> Медвежонок Пятачок © (07.10.11 14:03) [17]
> я бы лучше задался вопросом - а зачем вообще совать какие-
> то файлы в файл.
Ну надо мне и все.
Есть большая форма, на которой я создаю динамические массива и панели.
В каждой панели картинка, которую пользователь сам выберет.
Получается определенное художество.
И делаю банальную функцию SAVE, чтобы все сохранить.
А для того, чтобы все сохранилось и в следующей раз все выводилось надо сохранить кучу данных и картинок.
Пока в голове следующая идея из компиляции ваших и не ваших советов:
1) Разделить сохранение данных и сохранение картинок (что очень не хочется).
2) Сохранить данные как советовал Юрий Зотов.
Честно говоря ни разу еще не сохранял в НЕ_текстовый файл. Пока слабо представляю реализацию, но думаю в интернете найду (если вы подскажите будет еще лучше).
3) Создать и сохранить огромный Битмап. Его высота = высоте любой картинки, а ширина = сумма ширин всех картинок.
4) В итоге получится 2 файла - с данными и с картинками.
Причем пользователь сможет посмотреть файл с картинками, что не очень нравится. Так же считаю не идеальным хранить 2 файла для каждого сохранения, а не один...
Медвежонок Пятачок (2011-10-07 14:03:00) [18]я бы лучше задался вопросом - а зачем вообще совать какие-то файлы в файл.
Медвежонок Пятачок (2011-10-07 13:59:00) [19]а сколько будет весить куча картинок сама по себе?
пс
вы никогда фотки по почте не пересылали?
base64 и увеличение объема в 4/3 раза
ппс какие-то бородатые детские страхи....
Юрий Зотов (2011-10-07 13:53:00) [20]
> Дмитрий Белькевич (07.10.11 13:48) [13]
> В XML бинарник?
Само по себе - не вопрос (побайтно пишем 16-ричное представление, да и все дела). Но размер...