Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 5
1

Запись комментария в ini

02.12.2014, 18:01. Показов 2251. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
Ini->WriteString("Название секции","Имя переменной", "значение");
как сделать чтобы записался комментарий в ini файл?
Ничего не нашел похожего
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2014, 18:01
Ответы с готовыми решениями:

ini запись в Windows
Как бороться подскажите есть программка с ini файлом простая при закрытии прилаги записывает...

Запись и чтение *.ini
Здравствуйте. Вот код записи в *.ini файл:...

Запись в ini-файл координат окна относительно экрана
Третья тема (простите все, кому надоел!!!))) В предыдущей теме...

Запись строк из DBGrig в INI файл с возможностью дозаписывать
Добрый вечер уважаемые специалисты, помогите новичку разобраться с кодом. Я переношу выделенные в...

16
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
02.12.2014, 18:16 2
Janeylovan, вот так устроит?
C++
1
Ini->WriteString("Название секции","Имя переменной", "комментарий");
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 5
02.12.2014, 18:28  [ТС] 3
Цитата Сообщение от demon_7 Посмотреть сообщение
Janeylovan, вот так устроит?
Код C++
1
Ini->WriteString("Название секции","Имя переменной", "комментарий");


Проблема в том надо чтобы не писало: "Название секции" и "Имя переменной"
А чтобы был один комментарий

[Название секции]
Имя переменной=Привет

Добавлено через 3 минуты
Вот компилирует
C++
1
Ini->WriteString("","", "комментарий");;
[]
=Привет

Так нет
C++
1
Ini->WriteString( "комментарий");;
0
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
02.12.2014, 18:34 4
Ну все правильно. Так построена структура ini файлов, есть наименование секции, имя "переменной", значение.
А для ваших целей просто сохраните строковую переменную в в файл "test.ini"
C++
1
 Memo1->Lines->SaveToFile("test.ini");
Либо тоже самое может сделать TStringList
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
02.12.2014, 18:42 5
ТС хочет, чтобы ini-файл был вида

[Название секции]
# комментарий
Имя переменной=Привет

Такого TIniFile нету. Ибо подразумевается, что подобные файлы будут обрабатываться исключительно программой, а не человеком. А программе комментарий не нужен. Читерские варианты типа записать переменную с именем "# комментарий" не канают, т.к. нет гарантии, что он в файле появится в нужном месте

Добавлено через 47 секунд
Цитата Сообщение от demon_7 Посмотреть сообщение
А для ваших целей просто сохраните строковую переменную в в файл "test.ini"
Думается, тут тоже получится не то, потому что комментарий нужен в конкретном месте, а не абы где
1
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
02.12.2014, 18:47 6
Цитата Сообщение от Evg Посмотреть сообщение
ТС хочет,
Цитата Сообщение от Janeylovan Посмотреть сообщение
сделать чтобы записался комментарий в ini файл?
Конкретики о структуре файла и прочего ТС не дает, поэтому и советы мягко говоря не особо полезные, но при буквоедстве удовлетворяющие поставленные задачи.
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
02.12.2014, 18:48 7
Все такие велосипеды сводятся к использованию TStringList
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 5
02.12.2014, 18:52  [ТС] 8
Цитата Сообщение от demon_7 Посмотреть сообщение
Ну все правильно. Так построена структура ini файлов, есть наименование секции, имя "переменной", значение.
А для ваших целей просто сохраните строковую переменную в в файл "test.ini"
Код C++
1
*Memo1->Lines->SaveToFile("test.ini");
Либо тоже самое может сделать TStringList
Когда все настройки записались в ini меняется расширение на cfg
Мне нужен комментарий не на форме а в самом файле

P.S
memo - это комментарий на форме
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
02.12.2014, 18:53 9
Цитата Сообщение от demon_7 Посмотреть сообщение
Конкретики о структуре файла и прочего ТС не дает
Подозреваю, что речь идёт о TIniFile (или как там оно называется). Т.е. готовое решение, а не самодельныая реализация
0
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
02.12.2014, 18:56 10
Evg, Мы с Вами пока что только и можем подозревать что и как нужно.
Пора все таки определиться.Janeylovan, Уважаемый ТС, приведите пример наполнения файла, каким вы хотите его видеть. И откуда берется комментарий (он в единственном числе или нет)
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 5
02.12.2014, 19:02  [ТС] 11
Цитата Сообщение от Evg Посмотреть сообщение
Подозреваю, что речь идёт о TIniFile (или как там оно называется). Т.е. готовое решение, а не самодельныая реализация
Всё готово только проблема с этим
Такое я сам видел что программа пишет коментарий в при том на нужной строке

Добавлено через 4 минуты
Вот так должен выглядеть файл:

[SETTINGS]
Parameter=1

//Вот здесь комментарий
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
02.12.2014, 19:32 12
Это самодельный парсер ini файлов
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
02.12.2014, 23:29 13
Пиши как обычный текст в мемо и сохрани содержимое мемо в файл с расширением ини. Вот только как потом это читать.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
03.12.2014, 09:21 14
Как на счет двухпроходной записи в файл?
1) Стандартными средствами работы с Ini заполняются все секции. В требуемых местах комментарий предваряется спецсимволом.
2) Файл открывается как обычный текстовый и перезаписывается, стирая все спецсимволы.

До:
[Название секции]
Спецсимвол=комментарий
Имя переменной=Привет


После:
[Название секции]
#комментарий
Имя переменной=Привет
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
03.12.2014, 11:54 15
А зачем стирать спецсимвол? Пусть себе остается. Зато уж будет полноценный ini. И овцы сыты и волки целы.
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 5
03.12.2014, 12:07  [ТС] 16
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Как на счет двухпроходной записи в файл?
1) Стандартными средствами работы с Ini заполняются все секции. В требуемых местах комментарий предваряется спецсимволом.
2) Файл открывается как обычный текстовый и перезаписывается, стирая все спецсимволы.
До:
[Название секции]
Спецсимвол=комментарий
Имя переменной=Привет
После:
[Название секции]
#комментарий
Имя переменной=Привет
Приведите пожалуйста пример как это можно реализовать
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
03.12.2014, 13:57 17
На коленке:
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const String FilePathAndName = "D:/CommentIni.ini";
//Фаза 1:
TIniFile *iF = new TIniFile( FilePathAndName );
 
const String SectionNotFatal    = "Не смертельные виды убийств человеков-пауков",
             SectionMortally    = "Смертельные",
             Comment            = "SPIDERHELL^_^"; // <- Суперуникальный ключ-маркер
 
int countMortal(0), countNot(0), countC(0);
 
iF->WriteString( SectionNotFatal,       ++countNot,     "Выстрел с базуки"      );
iF->WriteString( SectionNotFatal,       ++countNot,     "Завалить небоскребом"  );
iF->WriteString( SectionNotFatal,       Comment + IntToStr( ++countC ),   "Недостаточно жестоко"  );
iF->WriteString( SectionNotFatal,       Comment + IntToStr( ++countC ),   "Более того - недостаточно кроваво"  );
iF->WriteString( SectionNotFatal,       ++countNot,     "Поставить подножку"    );
 
iF->WriteString( SectionMortally,       ++countMortal,  "По голове бац"         );
iF->WriteString( SectionMortally,       Comment + IntToStr( ++countC ),   "Самый кровавый"        );
 
delete iF;
 
// Фаза 2:
TStringList *sl = new TStringList();
sl->LoadFromFile( FilePathAndName );
for( int count=0; count<sl->Count; count++ )
  if( sl->Strings[count].Pos( Comment ) )
    sl->Strings[count] = "#" + sl->Strings[count].Delete( 1,
                                                          sl->Strings[count].Pos( "=" ) );
 
sl->SaveToFile( FilePathAndName );
delete sl;
}
0
03.12.2014, 13:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2014, 13:57
Помогаю со студенческими работами здесь

Исчезновение формы комментария после отправки комментария
Здравствуйте. Столкнулся со следующей проблемой: Я сделал форму комментария, человек...

Запись в Ini-файл
И снова вопрос. Кто-нибудь пробовал писать в свой ini-файл, НЕ notes.ini! Или в любой текстовый...

Не работает запись в ini
писал первую программу все работало, а теперь только читает данные из (ини) а записывать не хочет....

Запись в ini файл
к слову, встроенной в пхп функции для записи чего либо в ini файлы нету. изобрел свой костыль....

Запись в ini файл
на форме расположен Edit (туда записываетя вопрос) Форма Checklistbox и баттен который записывает...

Запись ID INI секции
Добрый день форумчане! Вот появился один вопросик как сделать запись ID секции INI,то есть номер...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru