|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||||
Сохранить класс в файл03.12.2015, 09:30. Показов 10172. Ответов 97
Метки нет (Все метки)
Сохранение и загрузку делаю так:
Загружает тоже без ошибок, но переменная FisherMan пустая. Что я делаю не так?
0
|
||||||
| 03.12.2015, 09:30 | |
|
Ответы с готовыми решениями:
97
Сохранить файл в UTF8 Сохранить файл из memo Открыть и сохранить файл |
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
|
| 04.12.2015, 13:40 [ТС] | |
|
Получается что динамический массив невозможно сохранить?
Нужно обязательно определять размер массива?
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 04.12.2015, 13:52 | |
|
вполне возможно и как раз с использованием псевдосвойства, о котором идет речь в ликбезе и который ты упорно не желаешь штудировать, ссылаясь на якобы "заумность"
Добавлено через 8 минут пример Не по теме: Почему я должен за тебя искать примеры ?
1
|
|
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
|
| 04.12.2015, 14:53 [ТС] | |
|
Спасибо большое за пример.
Как-то все запутанно, может потому, что в первый раз столкнулся. Теперь буду пытаться разложить все по полочкам.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 04.12.2015, 15:27 | ||
|
0
|
||
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||||
| 07.12.2015, 10:34 [ТС] | ||||||
|
Наверное у меня ума не хватает. Все выходные сидел пытался разобраться, но ничего та и не вышло.
Понял только что нужен еще один класс типа TPersistent, но так и смог его прикрутить.
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 07.12.2015, 11:15 | |
|
0
|
|
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||||
| 07.12.2015, 13:09 [ТС] | ||||||
|
Вот так будет работать?:
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 07.12.2015, 13:29 | |
|
Не будет.
При сохранении в методе WriteList нужно записать длину массива (Writer.WriteInteger) и следом в цикле записать сами элементы массива (Writer.WriteString) При восстановлении в методе ReadList нужно прочитать длину массива (Reader.ReadInteger), затем установить длину массива равной прочитанной и, если она не нулевая, следом в цикле прочитать сами элементы массива (Reader.ReadString)
0
|
|
|
|
|||||||||||||||||||||
| 07.12.2015, 13:53 | |||||||||||||||||||||
|
что-то забрели ....
пример для XExx
1
|
|||||||||||||||||||||
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||||
| 07.12.2015, 14:06 [ТС] | ||||||
|
Так?
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||||||||
| 07.12.2015, 14:44 | ||||||||
Объяви вспомогательный тип данных В классе TFisherMan объяви публичное индексное св-во типа String и уже к этому свойству обращайся для чтения/записи эл-та массива по указанному индексу. Добавлено через 17 минут
1
|
||||||||
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||||||||||||||
| 07.12.2015, 15:59 [ТС] | ||||||||||||||||
|
не работает:
0
|
||||||||||||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|||||||
| 07.12.2015, 16:11 | |||||||
|
Публичное свойство - это public property. А published property - это опубликованое (не путать с публичным !) свойство. Публичные свойства не участвуют в неявном маршаллинге - для св-ва NajivkaMen он тебе и не нужен, потому что за это отвечает одноименное виртуальное свойство, объявляемое в рантайм при выполнении строки
Не по теме: Долго ты еще будешь биться лбом в миску аки слепой котенок ?) Неужели не надоело и не мучает совесть ?)
1
|
|||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 07.12.2015, 22:51 | ||
|
Мало того - СуперОбъект не сохраняет ни инф-цию о классе сохраняемого объекта, ни о типах сохраняемых членов объекта. Соответственно без доп.телодвижений автоматическое воссоздание сохраненного объекта с контролем типов невозможно. Ну а раз невозможно, то какая нафих разница - что в СуперОбъекте совершать эти доп.телодвижения, что в родном сериализаторе декларировать в файлере вирт.свойства ? При прочих равных условиях родной сериализатор вкупе с родным механизмом регистрации классов выглядит надежнее+универсальнее+экономнее Преимущество же всяких жисонов и хмл'ов становится очевиднее лишь при необходимости упрощения переноса объектов между разными платформами разработки
0
|
||
|
|
||
| 07.12.2015, 23:10 | ||
|
зачем контроль типов, если десериализатор и так работает? а уж восстанавливать в тот объект, который сохранялся, это думаю программист должен и так вот именно механизм регистрации и неочевидные подкостыливания DefineProps не дали сильно развиться сохранению в "родной формат" dfm но, как говорится, хозяин - барин
0
|
||
|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||
| 08.12.2015, 07:43 [ТС] | ||||
|
0
|
||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||||||||||||
| 08.12.2015, 08:41 | ||||||||||||
|
По твоей логике программист, например, открывая в дизайн-тайм ранее сохраненный свой проект с формой, должен сначала каким-то невенроятным образом создать объект-форму нужного заведомо известного класса (это ему на лбу что ли придется татуировку делать, чтобы не забыть класс формы между сеансами проектирования приложения?) , а потом каким-то образом дать отмашку сериализатору, чтобы он восстановил ранее сохраненные ее св-ва из dfm или чего-то там еще. Применительно к твоему конкретному примеру с СупеОбъектом придется проделать следующее: fm := TForm1.Create.FromJSON(ss.DataString); Выделенный жирным вызов конструктора обязателен, потому как суперОбъект сидит верхом непосредственно на TObject, ничего не зная о необходимости вызова конкретного конструктора конкретного наследника TForm1, в теле которого тот стринглист собссно и создается. Т.е. ни
1
|
||||||||||||
|
|
||
| 08.12.2015, 10:01 | ||
|
автор пишет делфи?
имхо для каждого дела можно иметь свой шпицштихель в учебниках в основном разбираются для хранения -типизированные файлы -текстовые форматы key=value по образу Ini -XML, JSON -база данных и только в учебнике по созданию компонентов делфи - DefineProperties
0
|
||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|||
| 08.12.2015, 11:19 | |||
|
Не по теме:
Добавлено через 4 минуты
0
|
|||
| 08.12.2015, 11:19 | |
|
Сохранить файл в папке Сохранить таблицу в файл Сохранить excel файл Как сохранить файл ? Сохранить цифры в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|