Как в Билдере С++ сохранить в файл Edit->Text и т.п.?
От: tolij Россия  
Дата: 11.10.02 15:38
Оценка:
Есть куча ячеек TEdit и TCSpinEdit, в которых вводятся числовые значения. Все это нужно сохранить в файл (неважно в каком формате главное чтобы можно было потом открыть и прочитать).
Как это сделать?
Как потом можно открыть то, что насохранял, и заполнить обратно эти ячейки?
Re: Как в Билдере С++ сохранить в файл Edit->Text и т.п.?
От: Vit! США www.nevzorov.net
Дата: 11.10.02 16:47
Оценка:
На дельфи можно примерно так:


AssignFile(f, 'c:\myfile');
Rewrite(f);
For i:=0 to Componentscount-1 do
  begin
    if Components[i] is TEdit then
     writeln(f,(Components[i] as TEdit).name+'='+(Components[i] as TEdit).text);
  end;
CloseFile(f);


Код писал на вскидку, поэтому наверное есть мелкие ошибки. Читать — читаешь построчно, через FindComponent находишь нужный компонент и присваиваешь значение.
Re: Как в Билдере С++ сохранить в файл Edit->Text и т.п.?
От: Crush Россия http://www.ael.ru/_crush/
Дата: 14.10.02 03:10
Оценка:
Здравствуйте tolij, Вы писали:

T>Есть куча ячеек TEdit и TCSpinEdit, в которых вводятся числовые значения. Все это нужно сохранить в файл (неважно в каком формате главное чтобы можно было потом открыть и прочитать).

T>Как это сделать?
T>Как потом можно открыть то, что насохранял, и заполнить обратно эти ячейки?




TIniFile *ini;
ini = new TIniFile("my_program.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;


Пример взят из хелпа по билдеру. my_program.ini — это файл в котором ты будешь хранить/читать записи.

Метод ReadInteger, например, вызывается с тремя параметрами: имя блока, куда будет писАться значение, имя ключа и значение по умолчанию, которое будет принято, если ключ не будет найден.

Обратная операция — WriteInteger. Там последним параметром значение, которое хочешь записать.
Там все просто посмотри билдеровский хелп.
Не ошибается то, что не работает. (с) Windows
Re[2]: Как в Билдере С++ сохранить в файл Edit->Text и т.п.?
От: tolij Россия  
Дата: 14.10.02 11:12
Оценка:
Здравствуйте Crush, Вы писали:

C>Здравствуйте tolij, Вы писали:


T>>Есть куча ячеек TEdit и TCSpinEdit, в которых вводятся числовые значения. Все это нужно сохранить в файл (неважно в каком формате главное чтобы можно было потом открыть и прочитать).

T>>Как это сделать?
T>>Как потом можно открыть то, что насохранял, и заполнить обратно эти ячейки?

C>


C>

C>
C>TIniFile *ini;
C>ini = new TIniFile("my_program.ini");
C>Top     =  ini->ReadInteger( "Form", "Top", 100 );
C>Left    =  ini->ReadInteger( "Form", "Left", 100 );
C>Caption =  ini->ReadString( "Form", "Caption", 
C>                               "Default Caption" );
ini->>ReadBool( "Form", "InitMax", false ) ?
C>         WindowState = wsMaximized : 
C>         WindowState = wsNormal;
C>delete ini;
C>


C>Пример взят из хелпа по билдеру. my_program.ini — это файл в котором ты будешь хранить/читать записи.


C>Метод ReadInteger, например, вызывается с тремя параметрами: имя блока, куда будет писАться значение, имя ключа и значение по умолчанию, которое будет принято, если ключ не будет найден.


C>Обратная операция — WriteInteger. Там последним параметром значение, которое хочешь записать.

C>Там все просто посмотри билдеровский хелп.


В принципе способ интересный и я нахожу его более удобным, чем запихивать все данные в TMemo, а потом делать Memo1->Lines->SaveToFile, но кажется это все немного похабным, т.к. эти функции предназначаются для записи и чтения ini — файлов. Хотя если ничего лучшего найти пока не удалось, то воспользуюсь все-таки записью в ini-файлы.
Спасибо за подсказку.
Re[3]: Как в Билдере С++ сохранить в файл Edit->Text и т.п.?
От: Crush Россия http://www.ael.ru/_crush/
Дата: 15.10.02 01:28
Оценка:
Здравствуйте tolij, Вы писали:

T>В принципе способ интересный и я нахожу его более удобным, чем запихивать все данные в TMemo, а потом делать Memo1->Lines->SaveToFile, но кажется это все немного похабным, т.к. эти функции предназначаются для записи и чтения ini — файлов. Хотя если ничего лучшего найти пока не удалось, то воспользуюсь все-таки записью в ini-файлы.


Обозвать то сам файл можно как угодно, если не нравится имя *.ini. Однако TIniFile предоставляет довольно удобный интерфейс для хранения настроек. Так сказать, совсем не напрягаясь...
Не ошибается то, что не работает. (с) Windows
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.