Что нового

[Данные, строки] Записать раздел ini-файла из нескольких строк в переменную

Death

Новичок
Сообщения
12
Репутация
0
Есть ini файлы с большим количеством разделов.
Как полностью записать раздел из нескольких строк в переменную? Не разбивая каждый раздел на ключи.

То есть текст из раздела tex1:

Код:
[tex1]
Бла-бла-бла
Много текста
Очень много
Полностью записать в переменную, с абзацами.

Вот такой вариант не подходит:
Код:
[tex1]
stroka1=Бла-бла-бла
stroka2=Много текста
stroka3=Очень много
Так как разделов очень много, и содержат в себе разное количество строк.
 

joiner

Модератор
Локальный модератор
Сообщения
3 317
Репутация
566
может не точно понял задание, но как вариант
Код:
Local $fo = FileOpen('test.txt')
Local $res = '[tex1]';задаем строку начала поиска
Local $string = ''
Local $i = 1
While 1
	$fr = FileReadLine($fo, $i)
	If @error = -1 Then ExitLoop
	$i += 1
	If $fr = $res Then ContinueLoop; нашли строку начала поиска - пропускаем шаг
	If StringLeft($fr, 1) = '[' Then ExitLoop; пишем в переменную до тех пор, пока не появится строка - новый пункт типа [tex2]
	;и выходим из цикла
	$string &= $fr & @LF; пишем в переменную
WEnd
FileClose($fo)
ConsoleWrite(StringTrimRight($string, 1) & @LF)
 

joiner

Модератор
Локальный модератор
Сообщения
3 317
Репутация
566
это да, если раздел типа
Код:
[section]
text=много текста
а если
Код:
[section]
много текста
то выдаст ошибку.
автор, поясни, какой вид исходного раздела файла?
 

joiner

Модератор
Локальный модератор
Сообщения
3 317
Репутация
566
абсолютно "да" :smile:
смутил первый код в первом сообщении. мало ли что люди называют ini.
 
Автор
D

Death

Новичок
Сообщения
12
Репутация
0
Значит это действительно не ini, я не совсем точно описал задачу. Просто изначально это действительно был ini с разделами и ключами, а потом он принял... такой вид.

joiner, отличный вариант, попробую.
 
Верх