Вниз
Скачать: CL | DM;

Поддерживаются ли в Ini комментарии ?   Найти похожие ветки 

← →
DevilDevil   (2007-12-03 02:04) [0]

сабж.


← →
Kostafey ©   (2007-12-03 02:06) [1]

//


← →
DevilDevil   (2007-12-03 02:20) [2]

спасибо. а ";" ?

- допускаются ли имена параметров и секций русскими буквами
- секция "DELPHI" = секции "  Delphi " ?


← →
Kostafey ©   (2007-12-03 02:30) [3]

> спасибо. а ";" ?

да


> - допускаются ли имена параметров и секций русскими буквами

не знаю, но делать так не следует точно.


> - секция "DELPHI" = секции "  Delphi " ?

По-моему да, но лучше придерживаться
правила: написал 1 раз в других чатсях кода
используем тот же регистр.
Иначе, можно запутаться, особенно если иметь дело
с разными язаками, хоть даже это будет ini.


← →
DevilDevil   (2007-12-03 02:39) [4]

Спасибо!


← →
DevilDevil   (2007-12-03 04:01) [5]

нет, "//" Не поддердивается! :)


← →
Kostafey ©   (2007-12-03 04:27) [6]

> нет, "//" Не поддердивается! :)

Может от парсера зависеть.


← →
Anatoly Podgoretsky ©   (2007-12-03 09:45) [7]


> DevilDevil   (03.12.07 02:04)  

По определению НЕТ, то что тебе кажется комментарием, на самом деле является параметром.


← →
Kostafey ©   (2007-12-03 09:56) [8]

> [7] Anatoly Podgoretsky ©   (03.12.07 09:45)
>
> По определению НЕТ, то что тебе кажется комментарием, на
> самом деле является параметром.

А вот отсюда поподробнее пожалуйста.


← →
Anatoly Podgoretsky ©   (2007-12-03 10:07) [9]

> Kostafey  (03.12.2007 09:56:08)  [8]

В ИНИ по определению нет комментариев, они там просто бессмысленны, поскольку после изменения секция пишется в новое место.
Попробуй из Дельфи обратиться к параметру

;Par=ABC

где параметр равен ;Par


← →
{RASkov} ©   (2007-12-03 11:49) [10]

> По-моему да, но лучше придерживаться
> правила: написал 1 раз в других чатсях кода
> используем тот же регистр.

А по моему в данном конкретном случае, лучше пользоваться константами, типа нечто так:
Оформить константы, можно в отдельном модуле, и потом пользуемся константами....
const
//Ключи
 PARAM  = "PARAM";
 USDATA = "USDATA";
......
//Параметры
 FRMWIDTH  = "WIDTH"
 FRMHEIGHT = "HEIGHT";
........

WriteInteger(PARAM, FRMWIDTH, Width);

Во как...) ну типа так)


> В ИНИ по определению нет комментариев, они там просто бессмысленны

И все же в "системных"(те что виндовые) инишках - "комментарии" начинаются с ;
так же - http://ru.wikipedia.org/wiki/Ini

А что по мне, то я придерживаюсь мнения

> В ИНИ по определению нет комментариев

т.е. я в своей программе, работающей с ини файлом, могу считать все что угодно комментарием и наоборот....
в прочем я не пробывал вариант, предложенный Анатолием (параметр начинающийся с ;).... попробую)
но чисто ради интереса, так как названия своим ключам или параметрам начинать с ; никогда не буду :)


← →
Anatoly Podgoretsky ©   (2007-12-03 19:06) [11]

> {RASkov}  (03.12.2007 11:49:10)  [10]

Проверь, полезно для понимания, есть параметры или нет.


← →
oldman ©   (2007-12-03 19:21) [12]

Самый простые вопросы:
А зачем в ini комментарии?
Лень создать txt?


← →
TUser ©   (2007-12-03 20:09) [13]

#

комметы там нужны для
1. временного убирания некоторого кол-ва параметров
2. описания назначения параметров рядом с ними, что очень удобно


← →
Anatoly Podgoretsky ©   (2007-12-03 20:34) [14]

> TUser  (03.12.2007 20:09:13)  [13]

1. Комментарии это внутреннее интерпритация писателя. Для ИНИ это понятие не существует.
2. До первого редактирования секции.

Если файл не предназначен для редактирования программно, то пункт 1. имеет право на существование.


← →
Loginov Dmitry ©   (2007-12-03 21:22) [15]

> - допускаются ли имена параметров и секций русскими буквами
> - секция "DELPHI" = секции "  Delphi " ?


Если работать с ini-файлами через TIniFile, то для символов латинского алфавита регистр роли не играет. Для русского же языка "Дельфи" и "дельфи" - это 2 совершенно разных понятия (тут поможет TMemIniFile).


← →
{RASkov} ©   (2007-12-03 21:43) [16]

> [11] Anatoly Podgoretsky ©   (03.12.07 19:06)
> Проверь,

var F: TIniFile;
begin
 F:=TIniFile.Create(ExtractFilePath(Application.ExeName)+"INIFILE.ini");
 F.WriteString("PARAM", "ABC", "параметр без ; и #");
 F.WriteString("PARAM", ";DEF", "параметр начинается с ;");
 F.WriteString("PARAM", "#DEF", "параметр начинается с #");
 F.Free;

 F:=TIniFile.Create(ExtractFilePath(Application.ExeName)+"INIFILE.ini");
 ShowMessage(F.ReadString("PARAM","ABC", "Фигушки.... комментарий"));
 ShowMessage(F.ReadString("PARAM",";DEF", "Фигушки.... комментарий"));
 ShowMessage(F.ReadString("PARAM","#DEF", "Фигушки.... комментарий"));
 F.Free;
end;

У меня три сообщения такие:
"параметр без ; и #"
"Фигушки.... комментарий"
"параметр начинается с #"

D7 WinXP SP2....

В общем фик знает.... если символ ";" стоит в начале строки, то строка считается комментарием...


← →
Anatoly Podgoretsky ©   (2007-12-03 21:46) [17]

> {RASkov}  (03.12.2007 21:43:16)  [16]

Фокус не прошел :-(


← →
{RASkov} ©   (2007-12-03 21:54) [18]

> [17] Anatoly Podgoretsky ©   (03.12.07 21:46)
> Фокус не прошел :-(

procedure TMemIniFile.SetStrings(List: TStrings);
var
 .........
begin
.............
   if (S <> "") and (S[1] <> ";") then
     if (S[1] = "[") and (S[Length(S)] = "]") then
     begin
............
     end
     else
........
 end;
end;

inifile.pas
Да и здесь вон что-то не понравился - ";" борлондцам....


← →
Anatoly Podgoretsky ©   (2007-12-03 22:00) [19]

> {RASkov}  (03.12.2007 21:54:18)  [18]

Ну это их самодеятельность.


← →
Германн ©   (2007-12-03 22:25) [20]


> В общем фик знает.... если символ ";" стоит в начале строки,
>  то строка считается комментарием...

Наверно автор процедуры TMemIniFile.SetStrings слишком долго работал на ассемблере.
:-)


← →
Anatoly Podgoretsky ©   (2007-12-03 22:40) [21]

> Германн  (03.12.2007 22:25:20)  [20]

Лень писать, но проверять надо с помощью Get|Private|ProfileString - это законодатель.


← →
Германн ©   (2007-12-04 02:00) [22]


> Anatoly Podgoretsky ©   (03.12.07 22:40) [21]

Ну а мне тем более лень.
Но уж сколько раз я произносил слово "блин", увидев что поставил "точку с запятой" вместо двух слэшей в тексте Паскалевской программы! Привычка, однако.
Не пойму только почему автор процедуры TMemIniFile.SetStrings проверяет только первый символ строки? В Интелловских ассемблерах "точку с запятой" можно ставить в любом месте строки кода.


← →
Просветленный   (2007-12-04 03:33) [23]

Официальной спецификации ini-файла не существует, неофициальные предлагают использование точки с запятой в качестве обозначения комментария.


← →
Anatoly Podgoretsky ©   (2007-12-04 09:06) [24]

> Просветленный  (04.12.2007 03:33:23)  [23]

Сейчас уже сложно найти документацию из Win 3.1, но та что опубликована в MS SDK никаких комментарией не предполагает, к тому же я писал, что это бессмысленно для типового ИНИ файла, оно может применяться только в RO или вручную редактируемых файлах.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.007 c
2-1197294681
Zheksik
2007-12-10 16:51
2008.01.06
Почему в Memo и Блокноте разное выравнивание текста?


2-1197148139
Lip
2007-12-09 00:08
2008.01.06
Транспонирование матрицы не заводя новой матрицы


15-1195988431
Kolan
2007-11-25 14:00
2008.01.06
А я че хуже Kerk а? А мне присоветуйте монитор :)


9-1161888652
Pa5ha
2006-10-26 22:50
2008.01.06
Физика самолета


9-1164923413
Gigatrop
2006-12-01 00:50
2008.01.06
Проблемы с координатами




   Наверх