Выровнять значения столбцов в SQR
Я пытаюсь выровнять значения столбцов, но они имеют разную длину. Я не могу просто использовать Print '123' (+1, 9)
а потом Print '123456' (+1, 9)
потому что это будет выглядеть примерно так:
123456790123456790123456790123456790123456790123456790 <- Ignore this line
123
123456
Обратите внимание, что большинство правых чисел не выровнены друг с другом. Я хочу, чтобы вывод был таким:
123456790123456790123456790123456790123456790123456790 <- Ignore this line
123
123456
Поэтому я хотел бы прекратить печать по определенному индексу. Как бы я достиг этого, используя SQR?
Я старался Print '123' (+1, 9)
а также Print '1234' (+1, 9)
но это дает неправильные результаты.
2 ответа
Я не знаком с SQR, но вот предложение: поскольку SQR поддерживает функцию LPAD (см. Строковые функции):
Добавляет source_value слева в длину length_value, используя pad_value, и возвращает результат.
Синтаксис: dst_var = lpad(source_value, length_value, pad_value)
Вы можете применить его к строкам, которые вы печатаете. Например (еще раз: обратите внимание, что я не знаю SQR, вам может потребоваться настроить его):
Print lpad('123', 6, ' ') (+1, 9)
что сделало бы ...123
(каждая точка представляет собой пробел).
Почему LPAD длиной до 6 символов? Ну, потому что ваша другая строка ('123456') имеет длину 6 символов. Измените это, если необходимо.
Прежде всего, похоже, что вы хотите завершить значение в столбце 9. Функция lPad не будет работать для этого, потому что (+1,9) говорит START в столбце 9. Кроме того, вы не можете поместить функцию lPad в печать заявления.
Вместо этого используйте параметр Edit печати, начиная со столбца 1:
Print 123 (+1,1) edit 999999999
Print 123456 (+1,1) edit 999999999
Теперь это прекрасно работает для чисел, но также хорошо работает для строк, если они содержат числа. Так что это тоже работает:
Print '123' (+1,1) edit 999999999
Print '123456' (+1,1) edit 999999999
Я проверил эти утверждения в SQR, и они работают, однако, это приведет к ужасным результатам:
Print 'ABC' (+1,1) edit 999999999
Print 'ABCDEF' (+1,1) edit 999999999
Если вам нужно печатать строки, а не числа, используйте команду lPad для форматирования переменной:
Let $String = lPad($String, 9, ' ')
Print $String (+1,1) ! <--- start at column 1