C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Простое хранилище данных
Make
Отправлено: 08.12.2006, 05:37


Ученик-кочегар

Группа: Участник
Сообщений: 13



Имется куча форм с данными в SpinEdit и Edit каждый раз при создании формы они имеют значения 0 либо заданое по умолчания.

Каждый раз заполнять их не реально, поетому все значения записываю в ListBox и сохраняю на диске в текстовом файле, при загрузги все в обратном порядке.

при 20 разных формах приходится создавать 20 блокнотиков с данными, что не очень интересно, может кто знает способ как сохранить в одном файле, а еще лучше чтоб можно было создавать фаил с разметкой, непример:

Форма 1
Данные..
Форма 2
....
Форма 3

Заранее благодарен smile.gif
Valdemar
Отправлено: 08.12.2006, 08:27


Мастер участка

Группа: Участник
Сообщений: 433



Используйте INI файлы. См. TIniFile.
Make
Отправлено: 08.12.2006, 12:35


Ученик-кочегар

Группа: Участник
Сообщений: 13



а поподробнее, пожалуйста rolleyes.gif ?
Valdemar
Отправлено: 09.12.2006, 14:16


Мастер участка

Группа: Участник
Сообщений: 433



Читайте справку. В ней написано:
Following is an example of reading configuration information from an ini file in a form's constructor and writing values in the OnClose event handler.
CODE
__fastcall TForm1::TForm1(TComponent *Owner) : TForm(Owner)

{
  TIniFile *ini;
  ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ) );
  Top     =  ini->ReadInteger( "Form", "Top", 100 );
  Left    =  ini->ReadInteger( "Form", "Left", 100 );
  Caption =  ini->ReadString( "Form", "Caption",
                              "Default Caption" );
  ini->ReadBool( "Form", "InitMax", false ) ?
        WindowState = wsMaximized :
        WindowState = wsNormal;
  delete ini;
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{
  TIniFile *ini;
  ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ) );
  ini->WriteInteger( "Form", "Top", Top );
  ini->WriteInteger( "Form", "Left", Left );
  ini->WriteString ( "Form", "Caption", Caption );
  ini->WriteBool   ( "Form", "InitMax",
                      WindowState == wsMaximized );
  delete ini;
}
olegenty
Отправлено: 09.12.2006, 14:51


Ветеран

Группа: Модератор
Сообщений: 2412



но с XML работать как-то приятней (удобней), чем с INI, для этого можно воспользоваться любым подручным парсером (TXMLDocument, TjanXMLParser2, etc)
Make
Отправлено: 10.12.2006, 12:46


Ученик-кочегар

Группа: Участник
Сообщений: 13



ohmy.gif мдя, будем пробывать

Вернуться в Вопросы программирования в C++Builder