|
|
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
Перерыл весь интернет, но так и не нашёл рабочего кода, который сохранит мой экземпляр (а точнее массив экземпляров) в файл. Изначально пытался делать через типизированные файлы, но программа в этом случае сохраняет только указатель на экземпляр и после завершения программы всё теряется. Как я понял, чтобы сохранение происходило корректно, неоходимо объект сериализовать. Но вот как это сделать? Есть всякие потоки типа TMemoryStream, TFileStream для наследников TComponent, но я так и не понял как с ними возиться. Повторюсь, мне нужно сохранение массива Помогите!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:00:51 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:27:09 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorcheg, Перебери элементы массива в цикле. Правда, гениально? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:28:01 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
DimaBr, не туда "тынц". А вот сюда http://www.delphimaster.ru/articles/collections.html https://habrahabr.ru/sandbox/23800/ а еще лучше - вот это https://rsdn.org/article/delphi/serialization.xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:31:43 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
Спасибо, эти статьи я уже прочёл, но рабочего ответа на свою проблему я так и не нашёл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:48:24 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
DimaBr, читайте, пожалуйста, внимательно, что я спросил. Я спросил совсем другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:49:04 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
чччД, И правда гениально, как я сам то не додумался=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 14:50:40 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorchegПерерыл весь интернет, но так и не нашёл рабочего кода, который сохранит мой экземпляр (а точнее массив экземпляров) в файл. Изначально пытался делать через типизированные файлы, но программа в этом случае сохраняет только указатель на экземпляр и после завершения программы всё теряется. Как я понял, чтобы сохранение происходило корректно, неоходимо объект сериализовать. Но вот как это сделать? Есть всякие потоки типа TMemoryStream, TFileStream для наследников TComponent, но я так и не понял как с ними возиться. Повторюсь, мне нужно сохранение массива Помогите!!! TCollection умеет сериализоваться из коробки, мало чем отличаясь от массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:26:34 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
schi, Ну фишка не в том, что нужна сериализация массива, у меня в принципе объекты не сохраняются. Мне бы хотябы один объект сохранить, а потом уже, разумеется, массив. Есть что почитать про TCollection? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:34:02 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorchegschi, Ну фишка не в том, что нужна сериализация массива, у меня в принципе объекты не сохраняются. Мне бы хотябы один объект сохранить, а потом уже, разумеется, массив. Есть что почитать про TCollection? Тебе кучу ссылок на статьи о сериализации объектов дали. Ты утверждаешь, что читал их, но не помогло. Читай снова. До просветления. А про коллекции все написано в спавке Дельфи и практически в любой книге по Дельфи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:51:54 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
чччД, Давай без трольства и агрессии, пожалуйста. Этот код, который просто везде мне суют под нос, работает очень странно. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Объект класса player он сохраняет вот в таком виде: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 16:20:19 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorchegПовторюсь, мне нужно сохранение массива Что просили, то я и нашёл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 16:26:13 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorchegОбъект класса player он сохраняет вот в таком виде: Код: plaintext 1. Хотелось бы увидеть класс Player. Мой волшебный шар предсказывает что в нет нет PUSBLISHED свойств ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 16:28:18 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
DimaBr... волшебный шар предсказывает что в нет нет PUSBLISHED свойств Такого не может быть: он читал статьи. "- Чытав? - Чытав!" - (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 16:47:45 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorcheg, начиная c Дельфи 2010 есть сериализация в JSON. В последних версиях вроде даже почти "искаропки" сохранение. К Delphi 2010 можно было бесплатно скачать книжку Марко Канту Delphi 2010 handbook, где это подробно описывалось, но я подозреваю, что в более поздних версиях, даже не самых последних, это могло стать ещё проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 16:57:15 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
s62, не заметил, что речь не про Дельфи, а про Лазарус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 17:04:34 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorchegно рабочего ответа на свою проблему я так и не нашёл... тогда вопрос - работает-ли все это в Лазарусе так, как в Дельфи. Я писал код по примеру третьей статьи в своем списке, еще на Дельфи 2007. У меня код такой Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. В модулях всем объектам, которые предполагаются к сохранении, написано RegisterClass. Все работает. Сохраняет в подобие xml, читает тоже оттуда без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 17:44:51 |
|
||
|
Lazarus - сохранение в файл экземпляра класса
|
|||
|---|---|---|---|
|
#18+
feanorchegЭтот код, который просто везде мне суют под нос, работает очень странно. дело не в этом коде, а в том, зарегистрированы ли нужные компоненты через RegisterComponent, и как прописаны сохраняемые свойства у этих компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 18:23:29 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39460838&tid=2042239]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
187ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 439ms |

| 0 / 0 |
