![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение параметров из INI-файла
Алексей К. © (2008-04-19 14:49:00)Всем привет!
Вопрос в следующем:
есть INI-файл, нужно прочитать из него параметры, но дело в том, что они указаны следующим образом:
[SECTION 1]
PARAM1 = "123"
PARAM2 = 555
[SECTION 2]
PARAM3
PARAM4
PARAM5
секцию [SECTION 1] прочитать легко (стандартными ср-вами TIniFile), а вот как прочитать параметры из секции [SECTION 2]?
ЗЫ
Пробовал получить все параметры из секции
ReadSection('SECTION 2', myparams)
, но результата не получил.. как быть? может есть какие-нить компоненты, которые могут выполнить эту работу?
Зарание спасибо!
Алексей К. (2008-04-19 21:45:00) [1]всЁ!
задача успешно решена! (отдельное спасибо sniknik ;))
я нашел в сети модуль для работы с ini-файлами через StringList, немного переделал, теперь он годится и для inf-файлов =) если кому нужно, могу залить куда-нить...
ВСЕМ СПАСИБО!
Алексей К. (2008-04-19 21:24:00) [2]Оригинал, нет, ничего я не жду... просто хочу узнать, можно-ли это реализовать стандартными классами дельфи...
на начет:
19.04.08 14:49
19.04.08 20:34
это не значит, что я весь день за компом сижу.. %)
Алексей К. (2008-04-19 21:21:00) [3]инетерно.. ф-ия ValueFromIndex, в принципе, возвращает мне нужную строку, но вот почему-то отрезает 1-й символ
в файле:
0x1,"Classes\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A}",,"FlashProp Class"
ф-ия возвращает:
x1,"Classes\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A}",,"FlashProp Class"
С чем это может быть связано?
Оригинал (2008-04-19 21:10:00) [4]
> Алексей К. (19.04.08 20:34) [8]
> насчет этого я тоже думал, это метод через (_._), хотя работать
> будет ;)Так как насчет TStringList? есть возможность выводить
> в Names[x] также и имена, не содержащие '=' (как будто это
> просто пустое имя, без значения)...?
> Алексей К. (19.04.08 14:49)
> Алексей К. (19.04.08 20:34) [8]
И до сих пор не написана функция по работе с кривыми параметроами в файле?
Ждешь готовой функции?
Leonid Troyanovsky (2008-04-19 20:46:00) [5]
> Алексей К. (19.04.08 20:34) [8]
> Так как насчет TStringList? есть возможность выводить в
> Names[x] также и имена, не содержащие '=' (как будто это
> просто пустое имя, без значения)...?
А как насчет хелп почитать? A name-value pair.
Пользуй TParser и наступит полный контроль.
--
Regards, LVT.
Алексей К. (2008-04-19 20:34:00) [6]насчет этого я тоже думал, это метод через (_._), хотя работать будет ;)
Так как насчет TStringList? есть возможность выводить в Names[x] также и имена, не содержащие '=' (как будто это просто пустое имя, без значения)...?
Kolan (2008-04-19 20:19:00) [7]А можно еще сам фал преобразовавать на входе. Просто дописавать «=» туда где его нет. А работать как с ини
Anatoly Podgoretsky (2008-04-19 17:48:00) [8]> Алексей К. (19.04.2008 16:29:05) [5]
Если INF файл соответствует спецификации INF файлам Микрософт, то последний имеет для этого специальный INF SDK и инструментарий
Алексей К. (2008-04-19 16:29:00) [9]и действительно...
вот кусок кода TIniFile.ReadSection
if GetPrivateProfileString(PChar(Section), nil, nil, Buffer, BufSize,
PChar(FFileName)) <> 0 then
begin
P := Buffer;
while P^ <> #0 do
begin
Strings.Add(P);
Inc(P, StrLen(P) + 1);
end;
т.е. винда не позволяет работать с подобными файлами, соответственно вопрос. есть-ли компоненты/либы для работы с INF-файлами?
если-же нет, то как бы удобнее реализовать обработку таких файлов? (чтоб было приближенно к INI-файлам).. как, хотяб примерно, это делает сама ОС?
Anatoly Podgoretsky (2008-04-19 15:52:00) [10]> Алексей К. (19.04.2008 15:16:03) [3]
Да напиши ты сам свою функцию, делов то, обычная работа с текстовым файлом, например через ReadLn
Или ты думаешь, что та другая программа работает иначе. Через ИНИ АПИ можно работать только с ИНИ файлами, а это строгая структура и никакого понятия о порядке записей, гарантируются только сохранение списка параметров в рамках секции.
Алексей К. (2008-04-19 15:16:00) [11]изв.. прога с torry.net наз-ся Ini Edit v.2.1...
Anatoly Podgoretsky
по-сути - это синтаксис INF-файла для Windows, т.е. структура отличается только тем, что в секции могут быть и такие "порушенные" параметры...
ниужели нет спобов автоматизировать чтение таких файлов (кроме как вручную), вот например InnoSetup 5.x-версии тоже читает подобные файлы (в секции Code, по-моему)...
может ещё кто-нить подскажет...
Anatoly Podgoretsky (2008-04-19 15:07:00) [12]Секция 2 испорчена, это уже не ини файл, а просто порушеный файл и работать надо с ним не как с ини файлом.
Алексей К. (2008-04-19 15:04:00) [13]ЗЫ
на http://www.torry.net/quicksearchd.php?String=Ini&Title=Yesнашел прогу, Ini Manager v.1.1, которая читает файлы как раз, как мне нужно, но исходников нет =(, прога 2001 года и автор потерялсо куда-то...
но, так сказать, пример я привел ;)