Отступы и выравнивание строк

Сегодня я попытался сохранить файл с помощью TextIo. Всего 3 строчки:

Radio Station;MagicFM
Test;This is jost for testing purpose.
TV;TV_Brand

Все хорошо, но потом я прочитал это.

введите здесь описание изображения

Я не могу выровнять вещи.

Возможно, что-то вроде:

Radio Station         - MagicFM
Test                  - This is jost for testing purpose.
TV                    - TV_Brand

Это то, что у меня есть в коде:

info(strFmt("%1  - %2", strLFix( conPeek(con, 1), 20),conpeek(con, 2)));

Я немного поиграл с strRFix и strLFix, но безуспешно... есть ли простой способ сделать это?


person Olaru Mircea    schedule 14.12.2015    source источник


Ответы (3)


Такое выравнивание вывода не является предполагаемым использованием infolog, и, как сказал Матей, причина в шрифте. Однако, если вы хотите использовать информационный журнал для целей отображения, вы, вероятно, захотите использовать его таким образом, чтобы получить следующий вывод:

static void Job114(Args _args)
{
    container       c, cc;
    int             i;

    c = [["Radio Station", "MagicFM"], ["Test", "This is jost for testing purpose."], ["TV", "TV_Brand"]];
    setPrefix("Output"); // SetPrefix is necessary to get the tabbing to function correctly
    for (i=1; i<=conLen(c); i++)
    {
        cc = conPeek(c, i);
        info(strFmt("%1\t%2", conPeek(cc, 1), conPeek(cc, 2)));
    }
}

Вывод

person Alex Kwitny    schedule 14.12.2015
comment
Спасибо за ваш подробный ответ, я видел, что вы также упомянули этот шрифт, как и Матей, но ... где мне его изменить? - person Olaru Mircea; 15.12.2015
comment
Я бы не рекомендовал его менять, но это форма \Forms\SysInfologBrowser - person Alex Kwitny; 15.12.2015

Вы должны использовать Шрифт фиксированной ширины, например Courier. Вы не можете визуально выровнять шрифт переменной ширины.

person Matej    schedule 14.12.2015

Вы можете попробовать использовать метод System.String.Format, например:

str       s; 
s = System.String::Format("{0, -15} - {1, -15}", "Radio Station", "MagicFM");    
info(s);

См. Выравнивание строки с пробелами, функция strFmt [AX 2012] и Метод String.Format для получения дополнительной информации.

person ztirom    schedule 14.12.2015