|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Поищите здесь. Уже обсуждалось
либо TextBuffer, как сказал Ace of Database, либо AsciiIO, CommaIO у обоих методов есть достоинства и недостатки см. также http://axapta.mazzy.ru/lib/textfile/ Добрый день! Написал довольно большой модуль по Экспорту данных из файла. А вот потом обнаружилось, что большие куски текста Аксапта при считывании обрезает. Такое ощущение, что textBuffer.size не достаточно велик. textBuffer.size() выдаёт 568. Содержимое файла вот такое: http://belcheese.by/img/readme.txt Метод, описанный в статье http://axapta.mazzy.ru/lib/commaio/ тоже обрезает символы ![]() В чём дело ? Последний раз редактировалось Zeratul; 19.11.2009 в 19:11. |
|
![]() |
#2 |
Moderator
|
Наверное стоит привести полный код и полное описание сценария воспроизведения. Считываю в TextBuffer файлы по несколько мегабайт на всех версиях Ax (от 2.6 до 5-ки) - на потери не жалуются.
|
|
![]() |
#3 |
Участник
|
Цитата:
X++: static void Job60(Args _args) { TextBuffer textBuffer = new TextBuffer(); AsciiIO AsciiIO = new AsciiIO("c:\\\\readme.txt","r"); int i; container c; str s; ; AsciiIO.inFieldDelimiter("</td>"); c = AsciiIO.read(); for(i = 0; i <= conlen(c); i++) { s = conpeek(c,i); info(strfmt('%1',s)); } } и X++: static void Job60(Args _args) { TextBuffer textBuffer = new TextBuffer(); AsciiIO AsciiIO = new AsciiIO("c:\\\\readme.txt","r"); int i; container c; str s; ; textBuffer.fromFile("c:\\\\readme.txt"); textBuffer.setText(strrem(textBuffer.getText(), "\r")); for (i = 0; i <= textBuffer.numLines(); i++) { info(strfmt('%2 %1',strLine(textBuffer.getText(), i),strlen(textBuffer.getText()))); } } |
|
![]() |
#4 |
----------------
|
Цитата:
Сообщение от Zeratul
![]() Такое ощущение, что textBuffer.size не достаточно велик. textBuffer.size() выдаёт 568.
Содержимое файла вот такое: http://belcheese.by/img/readme.txt может дело в том, что там перевод строки в один байт (0A)? |
|