Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > сохранение данных при выходе из программы


Автор: iraidaaa 25.9.2011, 11:14
Здравствуйте, уважаемые форумчане! У меня возникла следующая проблема: мне нужно при закрытии прораммы сохранить все данные об объектах, а точнее о массивах объектов,причем каждый из объектов содержит по несколько атрибутов. Я это пыталась сделать следующим образом: пыталась перезаписать мой массив объектов в двумерный массив строк, при выходе этот массив сохранялся бы в файл, а при запуске программы этот массив бы считывался и его элемнты присваивались бы моему исходному массиву объектов .(массив строк: элементы массива -это атрибуты объектов). Но так сделать у меня не получается, у меня есть подозрение, что так в принципе делать нельзя.Подскажите, пожалуйста, как быть?!

Автор: nick42 25.9.2011, 14:10
Если можно параметры записать текстом, то пробуйте TMemo, - это прямая работа с файлом плюс читабельность. Чтоб не мешал - в атрибутах - Invisible.

Автор: Данкинг 25.9.2011, 14:41
В чём именно проблема - сохранить? Можно в INI-файле же.

Автор: iraidaaa 25.9.2011, 15:04
nick42, мне нужно сохранить мои данные, не использую для этого компоненты. Вы мне предлагаете сохранять то, что будет отображено в текстовом окне TMemo?

Добавлено через 1 минуту и 17 секунд
Данкинг, проблема сохранить и правильно считать....Каким образом вы предлагаете это сдалать в INI ?

Автор: nick42 25.9.2011, 16:24
Цитата(iraidaaa @  25.9.2011,  15:04 Найти цитируемый пост)
сохранять то, что будет отображено в текстовом окне TMemo?
 Ну да. Я для таких целей иногда TStringGrid применяю - двумерная структура, колонок можно использовать сколько не жалко. И компонент надёжный.

Автор: iraidaaa 25.9.2011, 17:43
nick42, я думала про этот компонент, но мне бы хотелось это сделать, не привязывая к форме...Может это можно сохранить как-то по-другому???

Автор: nick42 25.9.2011, 18:00
Цитата(iraidaaa @ 25.9.2011,  17:43)
nick42, я думала про этот компонент, но мне бы хотелось это сделать, не привязывая к форме...Может это можно сохранить как-то по-другому???


"моя-твоя не понимай"... - что значит "не привязывая к форме"?? Ну, увеличьте ширину или длину формы в редакторе, втулите туда Memo или таблицу с "невидимым" свойством, потом верните прежние размеры... . Важно ведь, что у ячеек таблицы (tabl1->Cells[column][row]) структура AnsiString, что Вам и требуется. И памяти этот компонент немного съедает.

Автор: volatile 25.9.2011, 18:21
Цитата(iraidaaa @  25.9.2011,  11:14 Найти цитируемый пост)
пыталась перезаписать мой массив объектов в двумерный массив строк, при выходе этот массив сохранялся бы в файл

iraidaaa, имхо вам однозначно, нужна сериализация.
С билдером не работаю, поэтому не знаю где она там расположена... Подскажут более сведующие в билдере.
Ключевое слово: сериализация

Автор: iraidaaa 25.9.2011, 18:42
volatile, а что это вообще такое?!Если честно, слышу в первый раз)

Автор: Данкинг 25.9.2011, 18:48
Цитата(iraidaaa @  25.9.2011,  16:04 Найти цитируемый пост)
Каким образом вы предлагаете это сдалать в INI ?

Параметр1 - значение1, Параметр2 - значение2, как обычно. Нужно ведь, грубо говоря, сохранить настройки программы, т.е. в частности, её компонентов?

Автор: volatile 25.9.2011, 18:53
Цитата(iraidaaa @  25.9.2011,  18:42 Найти цитируемый пост)
а что это вообще такое

http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F

Добавлено через 40 секунд
http://cppbuilder.ru/articles/0126.php

Автор: iraidaaa 25.9.2011, 19:22
спасибо за информацию)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)