Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2014, 22:29   #1
ДимаДК
Пользователь
 
Аватар для ДимаДК
 
Регистрация: 14.11.2013
Сообщений: 31
Вопрос Как задействовать сохранение параметров программы в файл?

Часто такое писал на Delphi, но на C++ понятия не имею как так сделать. Пробовал гуглить, но нашел абсолютно разные и непонятные способы. Пробовал написать это, но прога не хочет сохранять переменные .
ДимаДК вне форума Ответить с цитированием
Старый 12.09.2014, 22:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А как ты на Делфи это делал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.09.2014, 22:52   #3
ДимаДК
Пользователь
 
Аватар для ДимаДК
 
Регистрация: 14.11.2013
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как ты на Делфи это делал?
очень просто с файлами:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  AssignFile(f, 'C:\Windows\en-US\Poses\MyProg.pos');
{$I-}
  Rewrite(f);
{$I+}
  if IOResult <> 0 then
    Exit;
  i := Form1.Top;
  Write(f, i);
  i := Form1.Left;
  Write(f, i);
  i := Form1.Width;
  Write(f, i);
  i := Form1.Height;
  Write(f, i);
  CloseFile(f);
end;
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  AssignFile(f, 'C:\Windows\en-US\Poses\MyProg.pos');
{$I-}
  Reset(f);
{$I+}
  if IOResult <> 0 then
    Exit;
  Read(f, i);
  Form1.Top := i;
  Read(f, i);
  Form1.Left := i;
  Read(f, i);
  Form1.Width := i;
  Read(f, i);
  Form1.Height := i;
  CloseFile(f);
end;
А вот в C++ с файлами намного сложнее
ДимаДК вне форума Ответить с цитированием
Старый 13.09.2014, 10:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а, понял. А Си какое? Билдер? MFC? Просто виндовая оконка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2014, 12:22   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А-а-а, понял. А Си какое? Билдер? MFC? Просто виндовая оконка?
Это не важно. Класс TIniFile работает даже с консолью. Проверено.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.09.2014, 12:52   #6
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

fwrite/fread функции в stdio.h
fstream istream, ostream в iostream.h
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 13.09.2014, 17:05   #7
ДимаДК
Пользователь
 
Аватар для ДимаДК
 
Регистрация: 14.11.2013
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А-а-а, понял. А Си какое? Билдер? MFC? Просто виндовая оконка?
C++Builder XE5, Windows 7, если все это так важно

Цитата:
Сообщение от challengerr Посмотреть сообщение
fwrite/fread функции в stdio.h
fstream istream, ostream в iostream.h
вот и не могу разобраться в чем разница между этими функциями. Вы не могли бы объяснить в чем разница, и где что применяется?

Последний раз редактировалось Stilet; 13.09.2014 в 17:11.
ДимаДК вне форума Ответить с цитированием
Старый 13.09.2014, 17:10   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Класс TIniFile работает даже с консолью. Проверено.
А он только в Билдере есть.
Впрочем ты прав: Автору бы не помешало использовать INI файлы.
Цитата:
C++Builder
Во! Отлично. Тогда Смитт правильно сказал: Ini файлы юзай.
Пример: http://www.programmersforum.ru/showthread.php?t=197749
I'm learning to live...

Последний раз редактировалось Stilet; 13.09.2014 в 17:24.
Stilet вне форума Ответить с цитированием
Старый 13.09.2014, 18:03   #9
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  AssignFile(f, 'C:\Windows\en-US\Poses\MyProg.pos');
{$I-}
  Reset(f);
{$I+}
  if IOResult <> 0 then
    Exit;
  Read(f, i);
  Form1.Top := i;
  Read(f, i);
  Form1.Left := i;
  Read(f, i);
  Form1.Width := i;
  Read(f, i);
  Form1.Height := i;
  CloseFile(f);
end;
А вот в C++ с файлами намного сложнее

Код:
std::ifstream ifs("program.ini");
ifs >> Form1.Top >> Form1.Left >> Form1.Width >> Form1.Height;
и то верно :D
Rififi вне форума Ответить с цитированием
Старый 13.09.2014, 21:58   #10
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

На Qt так можно сохранить координаты окна:

Код:
void Dialog::SaveSettings()
{
    //Save

    QSettings setting("MyCompany","myapp");
    setting.beginGroup("MainWindow");
    setting.setValue("position",this->geometry());
    setting.endGroup();

    qDebug() << "Saved";
}

void Dialog::LoadSettings()
{
    //Load

    QSettings setting("MyCompany","myapp");
    setting.beginGroup("MainWindow");
    QRect myrect  = setting.value("position").toRect();
    setGeometry(myrect);
    setting.endGroup();

    qDebug() << "Loaded";
}
Цитата:
The QSettings class provides persistent platform-independent application settings.

Users normally expect an application to remember its settings (window sizes and positions, options, etc.) across sessions. This information is often stored in the system registry on Windows, and in XML preferences files on Mac OS X. On Unix systems, in the absence of a standard, many applications (including the KDE applications) use INI text files.

QSettings is an abstraction around these technologies, enabling you to save and restore application settings in a portable manner. It also supports custom storage formats.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Сохранение параметров в реестр] Как сохранить параметры цвета в реестр. ZARO Общие вопросы Delphi 3 12.03.2010 21:24
Как задействовать ООП в игре? btf Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 06.12.2009 15:33
как задействовать ENTER? 54rus Помощь студентам 9 23.07.2009 18:18
Сохранение в файл работы программы devi409 Общие вопросы Delphi 12 29.04.2008 08:56
Сохранение параметров программы... Roof Общие вопросы Delphi 10 11.10.2007 08:22