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

А можно еще сам фал преобразовавать на входе. Просто дописавать &laquo;=&raquo; туда где его нет. А работать как с ини&#133


 
Алексей К.   (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.5 MB
Время: 0.024 c
3-1197018869
ZeroDivide
2007-12-07 12:14
2008.05.18
Форматирование XMLType в текст


3-1197038339
GlFox
2007-12-07 17:38
2008.05.18
Объединение данных из двух SQL-запросов


2-1208498832
kudatsky
2008-04-18 10:07
2008.05.18
Не создаётся индекс в DBF-файле


15-1207160212
Cyrax
2008-04-02 22:16
2008.05.18
Как из Siemens A62 получить модем для GPRS-интернета...


4-1188899278
Cj
2007-09-04 13:47
2008.05.18
Regedit DDE