2011-09-07 1 views
1

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

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

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

ответ

1

Функция 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

Это помогает мне многое ... Спасибо Ян :) –

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^