AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2009, 19:07   #1  
Zeratul is offline
Zeratul
Участник
 
75 / 10 (1) +
Регистрация: 29.09.2005
Адрес: Минск
Цитата:
Сообщение от 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.
Старый 19.11.2009, 20:35   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Наверное стоит привести полный код и полное описание сценария воспроизведения. Считываю в TextBuffer файлы по несколько мегабайт на всех версиях Ax (от 2.6 до 5-ки) - на потери не жалуются.
Старый 20.11.2009, 11:47   #3  
Zeratul is offline
Zeratul
Участник
 
75 / 10 (1) +
Регистрация: 29.09.2005
Адрес: Минск
Цитата:
Сообщение от Андре Посмотреть сообщение
Наверное стоит привести полный код и полное описание сценария воспроизведения. Считываю в TextBuffer файлы по несколько мегабайт на всех версиях Ax (от 2.6 до 5-ки) - на потери не жалуются.

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())));
    }
}
Текст файла по ссылке выше...
Старый 19.11.2009, 22:52   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
Сообщение от Zeratul Посмотреть сообщение
Такое ощущение, что textBuffer.size не достаточно велик. textBuffer.size() выдаёт 568.
Содержимое файла вот такое: http://belcheese.by/img/readme.txt
и проводник также говорит, а он какой должен быть?
может дело в том, что там перевод строки в один байт (0A)?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Чтение данных за пределами файла, временная таблица zemlyn DAX: Программирование 0 05.12.2005 18:32
Импорт данных из текстового файла mvf DAX: Программирование 17 18.04.2005 16:02
Импорт из текстового файла YVAS DAX: Программирование 8 08.04.2004 16:44
Импорт из текстового файла - один их вариантов. YVAS DAX: Программирование 5 13.01.2004 16:31
импорт из текстового файла ea DAX: Администрирование 1 05.06.2003 20:19

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:23.