![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что-то вроде Ini-файла [D5, NT4]
GreySerg © (2002-03-18 17:49:00)Есть файл (созданный в любом текстовом редакторе)такого вида:
[Base]
Path=MyPath;
username=myusername;
password=mypassword;
[Query]
Text=Query
for my Base;
Он похож на ini-файл, только значение параметра м.б. на нескольких строчках, и разделяются они между собой ;.
Мне нужно просто читать значения из этого файла.
Подскажите, как лучше сделать, изменить структуру TIniFile или создать свой собственный класс или просто написать функцию для чтения такого файла.
Может быть у кого есть готовые решения - пожалуйста, помогите кодом . Время поджимает просто.
DieHard (2002-03-19 16:17:00) [1]А если попробовать считать файл в List:TStringList как есть, а затем преобразовать значения, разбитые на несколько строчек например так:
Text=Query;
for my Base
=>
TextCount=2
Text1=Query
Text2=for my Base
После этого создать объект
MemIni:=TMemIniFile.Create("");
И загрузить в него полученные строки
MemIni.SetStrings(List);
Далее работай, как с обычным Ini-файлом, считывая значение параметра Text в цикле от 1 до TextCount из параметров с именами Text1...TextN (N=TextCount)
GreySerg (2002-03-19 13:12:00) [2]Извините, сделал поспешные выводы, обязательно надо чтобы в секции на каждой строке была конструкция вида
Parameter = Value, иначе строку не считает (мне это не нужно)
Придёться видно писать свой обработчик такого файла (((:
GreySerg (2002-03-19 12:55:00) [3]> Виктор Щербаков ©
Вообще-то ReadSectionValues не совсем то, что нужно (обязательно надо чтобы в секции была конструкция видаParameter = Value, иначе ничего не считает), но подойдёт.
Спасибо.
Виктор Щербаков (2002-03-19 12:39:00) [4]ReadSectionValues
GreySerg (2002-03-19 12:34:00) [5]> USAtyj ©
Такой вариант мне не подходит, так я могу сделать свой редактор и вообще обойтись без | (просто писать в одну строку и анализировать её при считывании)
> MAxiMum ©
при считывании всего раздела, считываются только строки вида
Parameter = Value, т.е. данный способ тоже не работает
MAxiMum (2002-03-18 19:23:00) [6]А ты сам подумай. Нафиг тебе параметр Text. Чиатй сразу раздел Query и записывай туде соответственно с помощью Read/Write|Section.
USAtyj (2002-03-18 18:44:00) [7]Работай как с ини-файлом, тока при записи данных многострочных символ перехода на новую строку заменяй на "|", например, а при считывании - обратно.
[Base]
Path=MyPath;
username=myusername;
password=mypassword;
[Query]
Text=Query|for my Base;