Проблема с разделителем строк

  • Автор темы Ash_Comp
  • Дата начала
A

Ash_Comp

#1
Проблемка в следующем:
Работаю с INI-файлами, а там параметр записывается сплошной строкой. Нужно считывать текст в RichEdit и наоборот -- записывать в файл. Всё работает, но если текст многострочный, появляется потребность в разделителе строк. Поглумившись, было придумано следующее:
[codebox]i := Pos(#3, str);
while i > 0 do
begin
str:=#13;
i := Pos(#3, str);
end;
Form3.sRichEdit1.Text := str;[/codebox]
Т.е. код перевода строки #13 заменил на #3. При записи в файл -- обратная замена:
[codebox]ci := Pos(#13, buf);
while ci > 0 do
begin
buf[ci]:=#3;
Delete(buf,ci+1,1);
ci := Pos(#13, buf);
end;
[/codebox]
Встаёт проблема: при многократной записи в файл затираются символы от начала каждой строки, начиная со второй.
Какие будут советы? Ну очень не хочется переходить к БД, всё летает на INI-файлах <_<
 
Z

zubr

#2
Вместо ini-файлов пользуй XML и не нужно будет этих извратов.
 
A

Ash_Comp

#3
Тогда неплохо бы посоветовать литературу по использованию таких файлов, а то мне это немного HTML напомнило :rolleyes: Подкините пример/ ссылку? А может ещё будут предложения?
 
Z

zubr

#4
Хмм... я в свое время по MSDN изучал. Могу посоветовать:
1. Импортировать библиотеку типов Microsoft XML
2. В msdn посмотреть описание и примеры с интерфейсами IXMLDOMDocument2, IXMLDOMNodeList, IXMLDOMNode и т. д.
3. Также рекомендую скачать DRKB http://www.drkb.ru/ - там думаю найдешь и пример использования MXML в Delphi.
 
A

Ash_Comp

#6
Благодарю, ознакомлюсь и с этим компонентом.