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