Написание текстового файла в Dynamics AX - PullRequest
1 голос
/ 07 сентября 2011

У меня есть набор значений для записи в текстовый файл.

Предположим, у меня есть значение поля размером 10, но размер поля фиксирован как 20, поэтому, когда приходит следующее поле, оно должно быть вставлено в позицию 21, заполняя оставшиеся 10 пробелов первого поля пустымипробелы.

Может кто-нибудь, пожалуйста, дайте мне знать, как это делается?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Функция strLfix будет наиболее вероятным исправлением.Аналогичная функция strRfix вправо выравнивает текст по указанной длине.

Также не забудьте установить разделитель поля вывода на пустую строку.Значение по умолчанию для одного пробела здесь не имеет значения.

static void TextIoTest(Args _args)
{
    TextIo f = new TextIo(@"C:\Temp\test.txt", 'w');
    ;
    f.outFieldDelimiter('');
    f.outRecordDelimiter('\r\n');
    f.write(    strLfix("abc",20), '|', strRfix("xyz",15), '|', 117);
    f.writeExp([strLfix("abc",20), '|', strRfix("xyz",15), '|', 117]);
    f.write(); // To force CR NL
}

Задание открывает файл для записи (усекает существующий файл или создает новый файл), задает разделители полей и записей, затем записывает ту же строкудважды (используя два разных вызова).Последний вызов write добавляет разделитель записи, это может или не может быть важным в зависимости от получателя.

0 голосов
/ 07 сентября 2011

Вы можете использовать strrep, substr и strpoke, пример можно найти в \Classes\VendOutPaymRecord_UK_BACS\output.

...