|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
ini файлы, многострочные переменные
Доброго времени суток!
Вопрос: как сделать (и возможно ли это) многострочную переменную в .ini файле? Например Код:
[section] value1=1 value2=2 value3=123 456 В итоге получаем 3 переменные {1, 2, 123}, т.е. последняя строка "456" теряется. а хочется получить {1, 2, 123 \n 456}. Можно нечто типа Код:
value3=123 \n 456 Но это маразменно + коллеги не поймут такой шутки. |
#2
|
||||
|
||||
Как-то так
Код:
Memo1.Lines.Delimiter := '#'; Button1.Caption := Memo1.Lines.DelimitedText; Memo2.Lines.Delimiter := '#'; Memo2.Lines.DelimitedText := Button1.Caption; Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#3
|
||||
|
||||
Код:
procedure WriteBinaryStream(const Section, Name: string; Value: TStream); function ReadBinaryStream(const Section, Name: string; Value: TStream): Integer; Пишу программы за еду. __________________ |
#4
|
|||
|
|||
вопрос немного в другом:
я хочу получить из ini-файла многострочную переменную, а - не одностроковую переменную с разделителями из которой можно сделать многострочную. Код:
value3=123 456 Проблема в том, что при чтении из ini-файла ini.ReadString - у меня задействуется только 1-я строка: т.е. в ini-файле найдена нужная секция, в ней найдено "value3=<значение>", далее я могу с помощью _ini.ReadString выцепить <значение>. Что на следующей строке написано - для ini.ReadString по-барабану. Как проге объяснить, что в ini-файле одному значению соответствует 2 строки? Т.е. вместо ini.ReadString хочу сделать нечто типа ini.ReadStringList. Собстно на примере: хочу чтоб в мемо отобразилось на двух строках Код:
123 456 Метод Код:
value3=123#456 |
#5
|
|||
|
|||
Цитата:
>woweook< |
#6
|
||||
|
||||
ini-файлы не поддерживают многострочные строки. Так что штаными методами никак не получится. Или делайте свой разделитель, или храните многострочные значения вот так:
Код:
line1=asjdasjdad line2=asj;asjd;lasd line3=84rhwerlwe Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
U.B.M. (26.11.2012)
|
#7
|
|||
|
|||
Цитата:
я бы тоже взял - но по "правилам игры" это нельзя. Именно поэтому вопрос и возник. Aristarh Dark абсолютно правильно понял вопрос и дал ожидаемый ответ. |
#8
|
|||
|
|||
И ещё вопросик небольшой - для .conf-файлов под Linux такая же штука выходит?
|
#9
|
||||
|
||||
Не пойму одного: кто мешает сделать свой парсер ini-подобного файла с поддержкой многострочных переменных? Там и парсить-то нечего.
jmp $ ; Happy End! The Cake Is A Lie. |
#10
|
|||
|
|||
Цитата:
Просто начальник немного не понимает значения слов, которые произносит. Парсер уже готов давно - так ему надо через жопу. Мол, ини-подобный файл это не ини-файл, значит так нельзя. Весь мозг выел мне Но я его перебодал. А по поводу вопроса - интересовался, скажем так, для расширения кругозора. |
#11
|
||||
|
||||
ini.readsection
Вычитывает тебе все лайны из секции инишника, интерпретируй как тебе надо. Там вроде какой-то готовый метод есть, позволяющий стринглисты писать, см. справку. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
U.B.M. (27.11.2012)
|