Могу предложить одно из решений, которое, возможно, не является оптимальным: удалять двоеточия. Это можно сделать, создав временный файл, в который записывать 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;
|