Длина строки ABAP. В языке ABAP есть несколько выражений для работы с длиной строк ABAP. Давайте проанализируем эти функции более подробно. Все представленные функции имеют один безымянный аргумент и используются очень часто. На примерах разберу получение длины строки различными способами.
Длина (length) строки ABAP STRLEN
1 2 3 4 |
strlen( lv_arg ) charlen( lv_arg ) dbmaxlen( lv_arg ) numofchar( lv_arg ) |
strlen (abap) – Эта функция возвращает нам количество символов в аргументе abap. В этом случае завершающие пробелы в строке с фиксированной длиной не учитываются. В объектах типа string учитываются. Это наиболее часто используемая функция для получения длины строки.
numoflen (abap) – эта функция будет возвращать нам количество символов аргумента abap. Завершающие пробелы не учитываются для любого типа аргумента.
charlen (abap) – Возвращает длину первого символа аргумента abap в используемой кодовой странице.
dbmaxlen (abap) – Возвращает максимальную длину строки, описанную в словаре ABAP. Если это строка с неограниченной длиной, функция возвращает константу abap_max_db_string_ln или abap_max_db_rawstring_ln. Это зависит от типа передаваемого аргумента.
Пример использования длины строки ABAP:
1 2 3 4 5 6 7 8 9 10 11 12 |
DATA(lv_str) = |youcoder.ru|. DATA(lv_strlen) = strlen( lv_str ). DATA(lv_numofchar) = numofchar( lv_str ). DATA(lv_charlen) = charlen( lv_str ). DATA(lv_dbmaxlen) = dbmaxlen( lv_str ). " Результаты: " lv_strlen = 11. " lv_numofchar = 11. " lv_charlen = 1. " lv_dbmaxlen = 536870912. |
Когда может понадобиться длина строки в реальных примерах?
- На вход из другой системы, мы можем получить в одно и то же поле несколько типов документов и различить документы мы можем только по длине номера. Следовательно, функция длина строки в этом случае поможет однозначно определить какой это документ. Это позволит записать каждый номер документа в нужное поле.
- При загрузке из Excel у нас на вход может приходить поле различной длины, но нам, например важно, чтобы оно было не более 33 символов длиной иначе нам нужно игнорировать эту строку, как ошибочную или выводить по ней сообщение. В этом случае, длина строки ABAP поможет отсеять не нужные.
- Нам нужно получить часть строки, например с 11 по 21 символ, но эти символы есть не в каждой из строк, некоторые имеют длину 10. Если мы без проверки обратимся к 11 символу строки, которая имеет длину 10, то получим ошибку. Чтобы предотвратить ошибку нужно получить и проверить длину строки ABAP.