Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение в файл большого количества картинок и данных [D7, XP]


Страницы:   1 2

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-ричное представление, да и все дела). Но размер...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо