Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300

ini файлы

08.03.2010, 17:05. Показов 2754. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу научиться работать с ini файлами, но почему-то не выходит
C++
1
2
3
4
5
AnsiString Put = ExtractFilePath(ParamStr(0));
TIniFile *Ini=new TIniFile(Put+"options.ini");
 
Ini->WriteString("Edits","Edit1",Edit1->Text);//тут выводит ошибку
Ini->WriteString("Edits","Edit2",Edit2->Text);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2010, 17:05
Ответы с готовыми решениями:

Ini файлы
Здравствуйте! Делаю программу с ini файлами. Хочу сделать так чтоб ini файл создавался там же где и файл exe самой программы (то есть все...

Ini файлы
Как в .ini записать свойства компонента, чтоб при повторном запуске программа просто смотрела в этот файл и использовала эти настройки?

INI файлы в ComboBox
Необходимо осуществить следующее: При запуске программы содержимое INI файла должно загрузиться в ComboBox. Далее, при необходимости...

22
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.03.2010, 17:13
Вврху вот это подключи
C++
1
#include "IniFiles.hpp"
1
 Аватар для Зоти Сергей
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
08.03.2010, 17:14
если на форме есть Edit1 и #include <inifiles.hpp> будет работать
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
08.03.2010, 17:14  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Вврху вот это подключи
C++
1
#include "IniFiles.hpp"
а я это сделал так
C++
1
#include <IniFiles.hpp>
и ошибка выскакивает хоть так хоть так

[C++ Warning] Unit1.cpp(30): W8004 'Ini' is assigned a value that is never used
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.03.2010, 17:14
Цитата Сообщение от Hovercat Посмотреть сообщение
Хочу научиться работать с ini файлами, но почему-то не выходит
C++
1
2
3
4
5
AnsiString Put = ExtractFilePath(ParamStr(0));
TIniFile *Ini=new TIniFile(Put+"options.ini");
 
Ini->WriteString("Edits","Edit1",Edit1->Text);//тут выводит ошибку
Ini->WriteString("Edits","Edit2",Edit2->Text);
После вот этого ещё надо освободиь память таким способом

Ini->Free();
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
08.03.2010, 17:18  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
После вот этого ещё надо освободиь память таким способом

Ini->Free();
и это есть
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.03.2010, 17:20
Цитата Сообщение от Hovercat Посмотреть сообщение
а я это сделал так
C++
1
#include <IniFiles.hpp>
и ошибка выскакивает хоть так хоть так

[C++ Warning] Unit1.cpp(30): W8004 'Ini' is assigned a value that is never used
А ну указатель надо
Тоже вверху
TIniFile *Ini;

Добавлено через 27 секунд
Для примера тебе
C++
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "IniFiles.hpp"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TIniFile *Ini;
AnsiString Patch;
 
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   TRect r1,r2;
   r1 = Rect(Left+Width/2,Top+Height/2,Left+Width/2,Top+Height/2);
   r2 = BoundsRect;
   DrawAnimatedRects(Handle,IDANI_CAPTION,&r1,&r2);
 
   Edit1->Clear();
   Edit2->Clear();
 
 
 
        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
       Patch = ExtractFilePath(ParamStr(0)); // получаем путь к каталогу программы
       TIniFile *Ini = new TIniFile(Patch+"options.ini"); // создаем файл настроек
       Ini->WriteString("Edits","Edit1",Edit1->Text);
       Ini->WriteString("Edits","Edit2",Edit2->Text);
       Ini->WriteBool("CheckBoxes","CheckBox1",CheckBox1->Checked);
       Ini->Free() ;
 
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
        Patch = ExtractFilePath(ParamStr(0)); // получаем путь к каталогу программы
        TIniFile *Ini = new TIniFile(Patch+"options.ini");
        Edit1->Text = Ini->ReadString("Edits","Edit1","Def");
        Edit2->Text = Ini->ReadString("Edits","Edit2","Def");
        CheckBox1->Checked = Ini->ReadBool("CheckBoxes","CheckBox1",CheckBox1->Checked);
        Ini->Free() ;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        Edit1->Clear();
        Edit2->Clear();
        CheckBox1->State=cbUnchecked;
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
  TRect r1,r2;
  r1 = Rect(Left+Width/2,Top+Height/2,Left+Width/2,Top+Height/2);
  r2 = BoundsRect;
  DrawAnimatedRects(Handle,IDANI_CAPTION,&r2,&r1);
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
    if(Key==VK_ESCAPE)
           Close();
}
//---------------------------------------------------------------------------
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
08.03.2010, 17:26  [ТС]
C++
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
 
#include <vcl.h>
 
#include <IniFiles.hpp>
 
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
TIniFile *Ini;
 
AnsiString Patch;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Patch=ExtractFilePath(ParamStr(0));
 
TIniFile *Ini=new TIniFile(Patch+"options.ini"); // создаем файл настроек
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Ini->WriteString("Edits","Edit1",Edit1->Text);
Ini->WriteString("Edits","Edit2",Edit2->Text);
Ini->Free() ;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text = Ini->ReadString("Edits","Edit1","Def");
Edit2->Text = Ini->ReadString("Edits","Edit2","Def");
Ini->Free() ;
}
//---------------------------------------------------------------------------
когда нажимаю буттон 1 или 2 то выскакивает ошибка
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.03.2010, 17:32
Не мудрено что выскакивает.

C++
1
2
3
Patch=ExtractFilePath(ParamStr(0));
 
TIniFile *Ini=new TIniFile(Patch+"options.ini");
Пропиши сверху в каждом батоне а с криейт вообще убери

Добавлено через 1 минуту
Или на худой конец объяви глобально
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
08.03.2010, 17:37  [ТС]
Sasha отдельное спасибо за пример
0
 Аватар для assu
22 / 22 / 2
Регистрация: 29.08.2008
Сообщений: 138
09.03.2010, 10:03
Мне интересно, а почему в TIniFile *Ini=new TIniFile(Patch+"options.ini"); не указаны двойные слэши в options?
Я делаю всегда вот так:
Ini = new TIniFile (AnsiString(WindowsDirectory) + "\\screen_help.ini\0");
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
09.03.2010, 19:56
Цитата Сообщение от assu Посмотреть сообщение
Мне интересно, а почему в TIniFile *Ini=new TIniFile(Patch+"options.ini"); не указаны двойные слэши в options?
Я делаю всегда вот так:
Ini = new TIniFile (AnsiString(WindowsDirectory) + "\\screen_help.ini\0");
А зачем их там ставить?

Добавлено через 26 минут
Patch=ExtractFilePath(ParamStr(0));

Я подебагеру прошёлся там

"F:\\Narabotki\\Ini\\" да плюс "options.ini"
0
 Аватар для assu
22 / 22 / 2
Регистрация: 29.08.2008
Сообщений: 138
10.03.2010, 04:08
Ну возможно они и не нужны, я просто привык ставить слэши :-)
0
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
10.03.2010, 10:05  [ТС]
а как сделать этот файл скрытым, чтоб не показывался, бо я хочу там хранить пароль
0
 Аватар для assu
22 / 22 / 2
Регистрация: 29.08.2008
Сообщений: 138
10.03.2010, 10:49
попробуй вот этой функцией:
_wrtl_chmod(const wchar_t *path, int func, ... );
0
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
10.03.2010, 22:28  [ТС]
в Ini файле записаны данные пароля и положения формы
[Pass]
Password=0000
[Form]
Left=0
Top=0
есть глобальная переменная Password, при запуске приложения, оно должно считывать настройки, и применять их, при закрытии сохранять новые настройки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
AnsiString Password;
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Patch=ExtractFilePath(ParamStr(0)); 
TIniFile *Ini = new TIniFile(Patch+"options.ini"); 
Password=Ini->ReadString("Pass","Password","Def");
Form1->Left=Ini->StrToInt(ReadString("Form","Left","Def"));
Form1->Top=Ini->StrToInt(ReadString("Form","Top","Def"));
Ini->Free();
}
 
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Patch=ExtractFilePath(ParamStr(0)); 
TIniFile *Ini = new TIniFile(Patch+"options.ini"); 
Ini->WriteString("Pass","Password",Password);
Ini->WriteString("Form","Left",Form1->Left);
Ini->WriteString("Form","Top",Form1->Top);
Ini->Free();
}
выводит ошибку преобразования
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.03.2010, 23:29
Вот так у меня сохраняет значение твоей глобальной переменной
C++
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
       Patch = ExtractFilePath(ParamStr(0)); // ïîëó÷àåì ïóòü ê êàòàëîãó ïðîãðàììû
       TIniFile *Ini = new TIniFile(Patch+"options.ini"); // ñîçäàåì ôàéë íàñòðîåê
       Ini->WriteString("Pass","Password",Password);
       Ini->WriteString("Edits","Edit1",Edit1->Text);
       Ini->WriteString("Edits","Edit2",Edit2->Text);
       Ini->WriteBool("CheckBoxes","CheckBox1",CheckBox1->Checked);
       Ini->Free() ;
 
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
        Patch = ExtractFilePath(ParamStr(0)); // ïîëó÷àåì ïóòü ê êàòàëîãó ïðîãðàììû
        TIniFile *Ini = new TIniFile(Patch+"options.ini");
        Password=Ini->ReadString("Pass","Password",Password);
        Edit1->Text = Ini->ReadString("Edits","Edit1",Edit1->Text);
        Edit2->Text = Ini->ReadString("Edits","Edit2",Edit2->Text);
        CheckBox1->Checked = Ini->ReadBool("CheckBoxes","CheckBox1",CheckBox1->Checked);
        Ini->Free() ;
}
Добавлено через 16 минут
Цитата Сообщение от Hovercat Посмотреть сообщение
в Ini файле записаны данные пароля и положения формы
[Pass]
Password=0000
[Form]
Left=0
Top=0
есть глобальная переменная Password, при запуске приложения, оно должно считывать настройки, и применять их, при закрытии сохранять новые настройки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
AnsiString Password;
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Patch=ExtractFilePath(ParamStr(0)); 
TIniFile *Ini = new TIniFile(Patch+"options.ini"); 
Password=Ini->ReadString("Pass","Password","Def");
Form1->Left=Ini->StrToInt(ReadString("Form","Left","Def"));
Form1->Top=Ini->StrToInt(ReadString("Form","Top","Def"));
Ini->Free();
}
 
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Patch=ExtractFilePath(ParamStr(0)); 
TIniFile *Ini = new TIniFile(Patch+"options.ini"); 
Ini->WriteString("Pass","Password",Password);
Ini->WriteString("Form","Left",Form1->Left);
Ini->WriteString("Form","Top",Form1->Top);
Ini->Free();
}
выводит ошибку преобразования
А какую именно ошибку преобразования?
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
11.03.2010, 00:06  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
А какую именно ошибку преобразования?
стринг в инт не хочет переводить
0
 Аватар для Зоти Сергей
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
11.03.2010, 15:48
Form1->Left=Ini->StrToInt(ReadString("Form","Left","Def" ));
Form1->Top=Ini->StrToInt(ReadString("Form","Top","Def") );

C++
1
Form1->Left=StrToInt(Ini->ReadString
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.03.2010, 16:12
C++
1
2
3
Form1->Left=Ini->Read[b]Integer[/b]("Form","Left",Form1->Left));
...
Ini->Write[b]Integer[/b]("Form","Left",Form1->Left);
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2010, 16:12
Помогаю со студенческими работами здесь

Ini файлы и windows7
Подскажите столкнулся с такой проблемой. Моя программа нормально читает все нормально в windows XP c ini файлов, а в windows 7 pro по...

Десятичный разделитель и INI-файлы
- Здравствуйте завсегдатаи. С прошедшими и наступающими Вас праздниками! Помогите пожалуйста разобраться с одним вопросом. Мое...

В чем ошибка(ini-файлы)
Делаю сохранение настроек программы на форме нах 3 чекбокса, в первом ставлю галочку сохраняю в ини найл(если чекбокс активный то 1. Если...

ini - файлы. Не корректно считываются строки
Проблема в том, что когда я считываю строку из ini - файла: string=ini-&gt;ReadString(&quot;MAIN&quot;,&quot;Test&quot;,string); (с помощью расширения...

ini - файлы. Как проверить, существует ли группа с определенным именем?
Как можно с помощью расширения &lt;inifails.hpp&gt; проверить, существует ли группа, зная ее название. Допустим у меня есть переменная str, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru