Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.06;
Скачать: 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 вся ветка

Текущий архив: 2008.01.06;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.015 c
15-1196676782
vajo
2007-12-03 13:13
2008.01.06
Стоит ли брать эту видеокарту?


3-1188290958
ANB
2007-08-28 12:49
2008.01.06
Самый быстрый способ разобрать XML в оракл ?


15-1196672004
Empleado
2007-12-03 11:53
2008.01.06
Девка!


15-1196609516
Piter
2007-12-02 18:31
2008.01.06
Образы двухслойных дисков и программа ImgBurn


2-1197030304
sia
2007-12-07 15:25
2008.01.06
выход из windows закрывает мое приложение