В чем разница между классами CommaIO и Comma7IO? - PullRequest
3 голосов
/ 06 июня 2011

В справочном файле нет документации по назначению класса Comma7IO, только он расширяет класс CommaIO.

В чем разница?

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Для поддержки чтения и записи различных форматов внешних файлов, MorphX предлагает ряд различных классов Io;CommaIo для файлов, разделенных запятыми, Comma7Io для 7-битных файлов, разделенных запятыми , BinaryIo для двоичных файлов и AsciiIo для текстовых файлов.

По этой ссылке: RE: [Axapta-Knowledge-Village] Что-то классное - IO

1 голос
/ 07 июня 2011

Запустить эту работу

static void TestComma7Io(Args _args)
{
    str                 testString  = 'ABCDEFG~ÀÁÂÃÄÅÆÇÈÉÊË~HIJKLMNOP';
    str                 filename    = @"C:\TMP\test1.txt";
    str                 mode        = 'W';
    Io                  io;
    container           con;
    FileIoPermission    perm;
    ;

    perm = new FileIoPermission(filename, mode);

    if (!perm)
        return;

    perm.assert();

    // BP deviation documented.
    io = new Comma7Io(filename, mode);

    if (io)
        io.write(testString);

    CodeAccessPermission::revertAssert();
}

и проверьте содержимое файла: "ABCDEFG ~ \ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 306 \ 307 \ 310 \ 311 \ 312 \ 313 ~ HIJKLMNOP". Как видите, 8-битные символы были заменены на их восьмеричные коды .

Если вы замените io = new Comma7Io(filename, mode); на io = new CommaIo(filename, mode);, исходная строка будет записана в файл: "ABCDEFG ~ ÁÁÂÃÄÅÆÇÈÉÊË ~ HIJKLMNOP".

...