![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Teleport |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 5.7.2008 Где: Прибалтика Репутация: 3 Всего: 6 |
Вот сижу я и смотрю - в windows'e куча программ у меня поставлено и каждой программы есть свой типов файлов. Например, AutoCad имеет несколько своих типов (dwg, dxf...), Photoshop тоже свои проекты сохраняет в своем раширении и типе файла (psd, например). Так вот - а как же мне так сделать? Есть, например, программка, которая делает какие-то расчеты, строит диаграммки. Пользователь заполняет в ней таблички разные. И вот я хочу чтобы в любой момент этот самый пользователь мог сохранить свои значения в файле, а потом, когда захочет, открыть в моей программке свой сохраненный файл и продолжить заполнять и рассчитывать. Причем я не хочу сохранять просто в txt или в ini. Хочу работать именно со своим форматом файла (Речь пока не идет о том чтобы операционка распознавала мой формат файла, как файл моей программы). Выкладываю пример, в котором хочу это реализовать. Почитал я про типизированные файлы - вот думаю... там должны быть записи, например, повторяющиеся структуры данных... и записана запись может быть только полностью... вот не могу понять подходит ли мне это...
Присоединённый файл ( Кол-во скачиваний: 5 )
typ_fail.rar 6,59 Kb |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
так сохраняй свои файлы с расширениеv TEL, а не TXT
|
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Teleport, а чем не устраивают типизированые? Я так понял, что нужно не только данные из таблицы хранить.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Teleport |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 5.7.2008 Где: Прибалтика Репутация: 3 Всего: 6 |
2 former - да, данные не только из таблиц. Будут еще данные с различных ListBox, Edit, Memo. И вот пример - в моей программе рисуется какая-то фигура. Если нарисовали прямоугольник, значит переменной какой-то будет присвоено значение Эпрямоугольник" и его координаты. Если окружность или любая другая фигура - аналогично. Вот как в моем примере сохранить в типизированный файл??? Например при неполном заполнении таблицы? Т.е. если куча таблиц в программе? как сохранять в типизированный файл В ЛЮБОЙ МОМЕНТ заполнения. Т.е. до конца или нет я заполнил таблицу, заполнил ли я какие-то другие данные - не важно. Могу в любой момент времени смохранить всю уже введенную инфу. Какой тут подход? Как именно? Не могу понять
2 Kbl4AH - а я же, блин, хитромордый. Я не хочу чтобы мой файл в любом текстовом редакторе можно было посмотреть и сразу все понять. Это сообщение отредактировал(а) Teleport - 15.3.2009, 18:09 |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
могу предложить такой вариант. 1) Создавать для каждого типа объектов свой файл со своим расширением с массивом их описаний (типизированные файлы) 2) При сохранении склеивать их в один (поищи на форуме, Snowy приводил код) 2) При открытии либо считывать данные из этого файла, либо разбирать их из файла во временную папку. Я когда-то так делал файлы обновлений для БД. Там были и RTF и JPG и свой формат типизированного файла. Найти вот только не могу. Типа как в делфе. p.s. Можно еще посмотреть в сторону архивов. Это сообщение отредактировал(а) former - 15.3.2009, 18:19 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
Teleport, для создания своего типа файлов рекомендую TWriter/Treader.
Для ассоцииации расширения файла с программой - пишешь в HKEY_CLASSES_ROOT расширение своего файла и с какой программой он ассоциируется, а потом анализируешь параметры коммандной строки (ParamStr). Примеры можно найти через поиск. |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Используя это и склеивать файлы в один. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
||||
|
||||
| Teleport |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 5.7.2008 Где: Прибалтика Репутация: 3 Всего: 6 |
2 former - склеивать - об этом даже не думал...
2 THandle - буду разбираться. Только в той статье мало чего мне понятно |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
former, судя по коду приведенному Snowy(Хоть и Snowy, но все же есть небольшие "ненужности" типа заключения конструктора в try..except..end, ИМХО) он спаковывает в один файл несколько других, но потом чтобы эти файлы прочитать потребуется распаковывать на диск. Если топикстартеру это приемлемо(мне лично никоим образом подобное не нравится), то можно и использовать подобный метод. Но все же, как мне кажется, лучше самому сохранять все данные в определенной последовательности в один файл, а потом из этого же файла читать. при распаковке могут возникнуть проблемы. К примеру - нет прав на запись в директорию. и что делать? В общем, ИМХО, конечно.
Будут вопросы - спрашивай |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Я нажму <F3> в "коммандере" и точно так же посмотрю твой файл, какое бы ни было у него расширение. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Teleport |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 5.7.2008 Где: Прибалтика Репутация: 3 Всего: 6 |
2 former - мне сложно оценить данный метод так как не хватает ни опыта ни знаний. Но чисто по логике - мне проще писать все в один файл. За совет спасибо.
2 THandle - ага, спрошу. Сел разбираться. Добавлено @ 20:08 2 Данкинг - я не имею ввиду, что нельзя посмотреть мой файл вообще Это сообщение отредактировал(а) Teleport - 15.3.2009, 20:09 |
|||
|
||||
| Teleport |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 5.7.2008 Где: Прибалтика Репутация: 3 Всего: 6 |
2 THandle - уважаемый, ты приводил для трех Edit'ов такие вот процедурки мне:
Запись:
и чтение
А подходит ли данный способ для сохранения большого количества значений? Скажем так от 2000 значений до 10000(пусть все будут типа строкового). Есть ли ньюансы, зависящие от размера? Буду рад советам. Это сообщение отредактировал(а) Teleport - 17.3.2009, 08:43 |
||||
|
|||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |