Текущий архив: 2008.05.18;
Скачать: CL | DM;
ВнизЧтение параметров из INI-файла Найти похожие ветки
← →
Алексей К. (2008-04-19 14:49) [0]Всем привет!
Вопрос в следующем:
есть INI-файл, нужно прочитать из него параметры, но дело в том, что они указаны следующим образом:
[SECTION 1]
PARAM1 = "123"
PARAM2 = 555
[SECTION 2]
PARAM3
PARAM4
PARAM5
секцию [SECTION 1] прочитать легко (стандартными ср-вами TIniFile), а вот как прочитать параметры из секции [SECTION 2]?
ЗЫ
Пробовал получить все параметры из секцииReadSection("SECTION 2", myparams)
, но результата не получил.. как быть? может есть какие-нить компоненты, которые могут выполнить эту работу?
Зарание спасибо!
← →
Алексей К. (2008-04-19 15:04) [1]ЗЫ
на http://www.torry.net/quicksearchd.php?String=Ini&Title=Yes нашел прогу, Ini Manager v.1.1, которая читает файлы как раз, как мне нужно, но исходников нет =(, прога 2001 года и автор потерялсо куда-то...
но, так сказать, пример я привел ;)
← →
Anatoly Podgoretsky © (2008-04-19 15:07) [2]Секция 2 испорчена, это уже не ини файл, а просто порушеный файл и работать надо с ним не как с ини файлом.
← →
Алексей К. (2008-04-19 15:16) [3]изв.. прога с torry.net наз-ся Ini Edit v.2.1...
Anatoly Podgoretsky
по-сути - это синтаксис INF-файла для Windows, т.е. структура отличается только тем, что в секции могут быть и такие "порушенные" параметры...
ниужели нет спобов автоматизировать чтение таких файлов (кроме как вручную), вот например InnoSetup 5.x-версии тоже читает подобные файлы (в секции Code, по-моему)...
может ещё кто-нить подскажет...
← →
Anatoly Podgoretsky © (2008-04-19 15:52) [4]> Алексей К. (19.04.2008 15:16:03) [3]
Да напиши ты сам свою функцию, делов то, обычная работа с текстовым файлом, например через ReadLn
Или ты думаешь, что та другая программа работает иначе. Через ИНИ АПИ можно работать только с ИНИ файлами, а это строгая структура и никакого понятия о порядке записей, гарантируются только сохранение списка параметров в рамках секции.
← →
Алексей К. (2008-04-19 16:29) [5]и действительно...
вот кусок кода 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 17:48) [6]> Алексей К. (19.04.2008 16:29:05) [5]
Если INF файл соответствует спецификации INF файлам Микрософт, то последний имеет для этого специальный INF SDK и инструментарий
← →
Kolan © (2008-04-19 20:19) [7]А можно еще сам фал преобразовавать на входе. Просто дописавать «=» туда где его нет. А работать как с ини…
← →
Алексей К. (2008-04-19 20:34) [8]насчет этого я тоже думал, это метод через (_._), хотя работать будет ;)
Так как насчет TStringList? есть возможность выводить в Names[x] также и имена, не содержащие "=" (как будто это просто пустое имя, без значения)...?
← →
Leonid Troyanovsky © (2008-04-19 20:46) [9]
> Алексей К. (19.04.08 20:34) [8]
> Так как насчет TStringList? есть возможность выводить в
> Names[x] также и имена, не содержащие "=" (как будто это
> просто пустое имя, без значения)...?
А как насчет хелп почитать? A name-value pair.
Пользуй TParser и наступит полный контроль.
--
Regards, LVT.
← →
Оригинал (2008-04-19 21:10) [10]
> Алексей К. (19.04.08 20:34) [8]
> насчет этого я тоже думал, это метод через (_._), хотя работать
> будет ;)Так как насчет TStringList? есть возможность выводить
> в Names[x] также и имена, не содержащие "=" (как будто это
> просто пустое имя, без значения)...?
> Алексей К. (19.04.08 14:49)
> Алексей К. (19.04.08 20:34) [8]
И до сих пор не написана функция по работе с кривыми параметроами в файле?
Ждешь готовой функции?
← →
Алексей К. (2008-04-19 21:21) [11]инетерно.. ф-ия 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:24) [12]Оригинал, нет, ничего я не жду... просто хочу узнать, можно-ли это реализовать стандартными классами дельфи...
на начет:
19.04.08 14:49
19.04.08 20:34
это не значит, что я весь день за компом сижу.. %)
← →
Алексей К. (2008-04-19 21:45) [13]всЁ!
задача успешно решена! (отдельное спасибо sniknik ;))
я нашел в сети модуль для работы с ini-файлами через StringList, немного переделал, теперь он годится и для inf-файлов =) если кому нужно, могу залить куда-нить...
ВСЕМ СПАСИБО!
Страницы: 1 вся ветка
Текущий архив: 2008.05.18;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.048 c