Показать сообщение отдельно
Старый 03.08.2007, 20:14   #2  
alizee is offline
alizee
Участник
 
2 / 10 (1) +
Регистрация: 19.10.2007
Могу предложить одно из решений, которое, возможно, не является оптимальным: удалять двоеточия. Это можно сделать, создав временный файл, в который записывать OutStream уже без двоеточий, а потом из этого же времменого файла читать InStream и импортировать уже его. Приведу пример, как это может выглядеть:

inportFile.OPEN(bla-bla-bla);
inportFile.CREATEINSTREAM(incomeStream);

tmpfile.CREATETEMPFILE;
tmpfile.CREATEOUTSTREAM(outcomeStream);

{Логика может быть любой. Я читала InStream по одному символу, и записывала в OutStream все данные, кроме двоеточий. Для моего файла такой вариант хорошо подошел. Можно удалять двоеточия непосредственно в теге, чтобы не портить другое данные. Идея понятна.}

WHILE NOT (incomeStream.EOS()) DO
BEGIN
incomeStream.READTEXT(str, 1);
IF (str = ':') THEN
incomeStream.READTEXT(str, 1);

outcomeStream.WRITETEXT(str);
END;

tmpfile.CREATEINSTREAM(correctStream);

xmlvalue.SETSOURCE(correctStream);
xmlvalue.IMPORT;

tmpfile.CLOSE;
inportFile.CLOSE;