|
5 / 5 / 0
Регистрация: 08.07.2010
Сообщений: 233
|
||||||
Сохранить класс в файл03.12.2015, 09:30. Показов 10022. Ответов 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 файл Как сохранить файл ? Сохранить цифры в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|