Символ переноса строки word abap
Если строки должны иметь разделители (например, строки, содержащие каталоги и имя айла в пути доступа), такой разделитель задается следующим образом:
Содержимое path в этом примере будет 'a:\usr\programs'. Система возвращает не равное нулю значение переменной sy-subrc, если длина конкатенированной строки больше, чем длина поля, в которое она записывается.
Обратная операция разделения символьной строки осуществляется для произвольно выбранного разделителя:
В качестве разделителей строк можно использовать различные символы, например пробел, минус,или даже последовательность символов. Если одно из полей, в которые записывается результат, имеет недостаточную длину, все компоненты усекаются и переменная sy-subrc получает ненулевое значение.
Кроме того, если число компонентов превышает число целевых полей, информация теряется, так как последнее поле содержит всю оставшуюся часть строки. Чтобы не допустить этого, в качестве целевого объекта используйте внутреннюю таблицу, которая может содержать любое число строк:
Сдвинуть символьную строку на один символ можно посредством команды shift, а на несколько символов - путем добавления by n places:
После этих операций поле name_l будет содержать символьную строку dison, поле name_2 - th, a поле name_3 — Young (с начальными пробелами). Такие операции очень удобны, если к анализу текста приступают не сначала, а с определенного слова.
Если разработчик не хочет указывать число байтов, на которое осуществляется сдвиг (возможно, он и не знает его), можно использовать другие варианты команды shift.
Предположим, необходимо отыскать подстроку внутри строки и сдвинуть всю строку до начала этой подстроки:
Так как подстрока Bill найдена в поле names, после операции содержимое поля names будет Bill Charles. Если подстрока не найдена, строка остается без изменения и система возвращает ненулевое значение переменной sy-subrc. Аналогично, если поле должно быть сдвинуто вправо так, чтобы не содержать в конце заданного символа, можно написать следующий программный фрагмент:
Эта команда shift удаляет все пробелы после последнего значащего символа в поле name и возвращает значение ‘ Joanne’. Значение space (пробел) является предварительно определенным полем, содержащим пробелы.
Для замены определенных символов в строке используется команда replace, которая позволяет замещать первый встретившийся символ (или подстроку) внутри строки:
Поле string будет равно Variable: X. The variable & is substituted later. Для замены всех символов & на X вводится команда translate:
Команда translate позволяет заменить сразу несколько символов в строке. Правило замены записывается как последовательность пар, где первый символ всегда заменяется на второй. Например, можно заменить все переменные в математической формуле:
Символьные данные (также называемые строковыми) относятся к объектам данных широких символьных типов (включая типы C, N, D, T и String). Для строковых данных ABAP предоставляет некоторые уникальные операторы операций, эти операции не выполняют преобразование типов при обработке объектов данных и рассматриваются как типы C.
2. Обработка строковых данных
1. Подключите строку, используйте CONCATENATE
CONCATENATE s1 . sn INTO s_dest [SEPARATED BY sep].
Этот оператор соединяет строки s1 . sn и присваивает результат s_dest, где s_dest также может быть переменной в s1 . sn. Опция SEPARATED BY используется для указания строки в качестве разделителя, которая вставляется между s1 . sn при формировании новой строки. Если длина после соединения превышает заданную длину целевых данных, усечение присваивается c. Если результат усечен, SY-SUBRC возвращает 4, в противном случае значение возвращает 0. Чтобы избежать усечения, вы можете определить c как строку, а длина этого типа является адаптивной.
2. Разбейте строку и используйте SPLIT
SPLIT s_source AT sep INTO s1. sn.
Это предложение ищет разделитель sep в исходной строке и разбивает мета-строку на маленькие строки в соответствии с разделителем и помещает их в поле назначения s1 . sn. Эти подстроки не включают разделитель. С типом оператора соединения, если результат усечен, SY-SUBRC возвращает 4, в противном случае значение возвращает 0. Если исходная подстрока может разбить больше указанного числа подстрок, последняя оставшаяся часть исходной подстроки, включая следующие разделители, будет записана в последнюю подстроку. Чтобы избежать этой ситуации, необходимо использовать внутреннюю таблицу для работы.
SPLIT s_source AT sep INTO TABLE itab.
Оператор LOOP AT используется для циклического вывода каждой строки данных во внутренней таблице.
3. Найдите шаблон подстроки
Чтобы найти шаблон подстроки в строке, используйте SEARCH утверждение
SEARCH c FOR str.
Измените предложение, чтобы найти строку str в поле c. Если найдено, верните SY-SUBRC в 0, SY-FDPOS вернет позицию строки в поле c (смещение в байтах от вычисления), в противном случае верните SY-SUBRC в 4. Так называемый шаблон означает, что искомая строка может не совпадать со строкой. Вы можете задать игнорирование или оставить пробел в конце строки, или использовать подстановочный знак «*» для расширения гибкости поиска. Существует несколько режимов:
- str искать str и игнорировать конечные пробелы
- .str. Поиск по ул., но не игнорируйте конечные пробелы
- * str Поиск слов, заканчивающихся на str
- str * Поиск слов, начинающихся с str
4. Чтобы заменить содержимое поля, используйте оператор REPLACE.
REPLACE str1 WITH str2 INTO s_dest [LENGTH len].
Этот оператор ищет поле s_dest, и если в нем появляется строка str1, замените первое вхождение на str2. Если длина не указана, ищется весь s_dest. Если указана длина len, будет выполняться поиск только первых байтов len. Если поле SY-SUBRC возвращает 0, это означает, что оно было заменено, а не ноль означает, что оно не было заменено.
5. Определите длину поля, исключая завершающие пробелы, используйте STRLEN, оператор обрабатывает операнд str как символьный тип данных, независимо от фактического типа, и без преобразования
[COMPUTE] n = STRLEN( str ).
- SHIFT Сдвиг всей строки или подстроки
- CONDENSE удалить лишние пробелы в строке
- Перевести преобразование символов, таких как преобразование ABC в ABC
- CONVERT TEXT создает сортируемый формат
- OVERLAY Наложение одной строки на другую строку
- Когда назначается WRITE TO, тип объекта данных будет игнорироваться и обрабатываться как данные типа символа
3. Сравнение данных персонажа
Символьные логические выражения используются для определения отношения локализации между двумя строками
оператор | смысл |
---|---|
s1 CO s2 | Если s1 содержит только символы в s2, логическое выражение истинно |
s1 CN s2 | Если s1 содержит символы, отличные от s2, логическое выражение истинно |
s1 CA s2 | Если s1 содержит любой из символов в s2, логическое выражение истинно |
s1 NA s2 | Если s1 не содержит символов s2, логическое выражение имеет значение true |
s1 CS s2 | Если s1 содержит строку s2, логическое выражение истинно |
s1 NS s2 | Если s1 не содержит строку s2, логическое выражение имеет значение true |
s1 CP s2 | Если s1 содержит шаблон s2, логическое выражение имеет значение true |
s1 NP s2 | Если s1 не содержит шаблон s2, логическое выражение имеет значение true |
CO, CN, CA, NA чувствительны к регистру при сравнении, а конечные пробелы также находятся в пределах диапазона сравнения: при использовании CS, NS, CP, NP пробелы в конце игнорируются, а сравнение нечувствительно к регистру. После сравнения, если результат равен true, системное поле SY-FDPOS выдаст информацию о смещении s2 в s1.
3 Операция позиционирования подстроки
Используйте только указанную часть подстроки. s [+o][(1)]
Его смысл состоит в том, чтобы выполнять операторную операцию над частью поля s, начиная с o-й позиции (смещение от 0) и имея длину 1. Если длина не указана, обрабатываются все биты между oth и концом поля s.
Как правило, смещение и длина должны быть указаны как числа без знака. Тем не менее, переменные могут быть определены динамически в следующих ситуациях:
- При присваивании значений полям с помощью операторов MOVE или операторов присваивания
- При использовании оператора WRITE TO для переноса значений в поле
- При назначении полей символам поля с помощью ASSIGN
- При использовании PERFORM для передачи данных в подпрограмму
Имеет смысл указать смещения для типов символов, числовых текстовых полей, шестнадцатеричных полей и полей даты и времени, не используйте указанные смещения для числовых полей типов F, I и P.
Интеллектуальная рекомендация
Java.nio.Buffer flip () метод jdk Ошибка перевода на китайский язык
Когда я сегодня читал «Идеи программирования на Java», я столкнулся с методом java.nio.Buffer flip (). Дело в том, что «[color = red] переворачивает этот буфер. Сначала установите ог.
Предварительное понимание регулярных выражений Python (4)
Сегодня я продолжу делиться базовыми знаниями о регулярных выражениях Python. В основном я представляю использование специального символа "<>". Ниже приведено конкретное руководство. .
Все белое Введение Сверток Neural Network (CNN)
Использование внутреннего соединения, левого соединения, правого соединения в оракуле
Левое-правое соединение фактически говорит, какая таблица является результатом нашего совместного запроса ~ 1. Взаимосвязь проста select A.*, B.* from A,B where A.id = B.id select A.*, B.* from.
[Код очень подробный] POJ 2492 A Bug's Life (и проверьте коллекцию)
1. Описание заголовка 2. Инструкции по анализу алгоритмов и руководство по написанию кода. Похожие темы:POJ 1182 Решение проблемы пищевой цепи Наблюдается m насекомых и n вязок. Насекомые u и v могут .
Если тип структуры или объект был определен в той же программе, или структура определена в словаре данных, вы можете использовать общую форму операторов TYPES и DATA для прямой ссылки на структуру для генерации нового Структура
TYPES|DATA structure TYPE str_type | LIKE str_dobj.
Если специально указано, вы также можете обратиться к структуре таблицы базы данных, определенной в словаре данных, чтобы объявить структуру
TYPES|DATA structure TYPE dbtab.
- Тип стола и внутренний стол
Формат синтаксиса: TYPES|DATA table TYPE|LIKE tabkind OF linetype [WITH key] [INITIAL SIZE n].
4 объекта данных в программе
- Текстовый объект
Текстовый объект занимает программную память, но у него нет имени. Он может использоваться непосредственно в программе без какого-либо объявления. Существует два типа символов: цифры и символы. Цифровой текст можно использовать напрямую, а текстовый символ должен использоваться в начале и в конце ' Уточнить.
Если вам нужно вывести текстовый символ ' , Вам нужно добавить еще один перед ' Вернитесь к первоначальному намерению. - Именованный объект данных
требует объявления, прежде чем его можно будет использовать.- variables
- constants
- text symbols
- interface work areas
- selection screen parameter
Формат синтаксиса объявления констант следующий
CONSTANT const(len) TYPE type|LIKE dobj [DECIMALS dec] [VALUE val]
- ДЛИНА определяет тип объекта данных
- TYPE определяет тип объекта данных
- OUTPUT-LENGTH определяет длину вывода, фактическую длину вывода различных объектов данных
- DECIMALS определяет десятичную длину объекта данных типа P
- EDIT MASK определяет определение процедур преобразования в словаре данных
- HELP-ID определяет справочную информацию F1, определенную в словаре данных
2 Основные операции с данными
Эти две формы полностью эквивалентны.
- Назначение структуры
Структуры с похожими структурами (то есть структурами для преобразования типов) также могут быть назначены
Два структурных данных с одинаковой структурой присваиваются, и значения всех компонентов исходного объекта копируются в целевую структуру в целом, если структура двух компонентов структуры не совпадает в точности, только некоторые из компонентов имеют соответствующие отношения. В настоящее время, если общее назначение является , Это не имеет смысла, вы можете присваивать значения по одному, или вы можете использовать MOVE-CORRESPONDING Оператор назначает значения между всеми компонентами с одинаковыми именами в двух структурах, в то время как значения других полей в структуре деревянных табличек остаются неизменными. Формат синтаксиса похож на оператор MOVE:
MOVE-CORRESPONDING source_struct TO destination_struct.- Установить начальное значение
Используйте оператор CLEAR, чтобы очистить назначенное значение переменной и восстановить исходное состояние. Упомянутое здесь начальное значение означает «пустое» значение по умолчанию каждого типа в ABAP, а не начальное значение, указанное дополнительным элементом VALUE. CLEAR f
- Принцип преобразования базового объекта типа
Между основными типами нет правил преобразования, за исключением типов D и T, поэтому преобразование типов выполнить нельзя, и существуют соответствующие правила преобразования между другими типами.
- Принцип преобразования объекта ссылочного типа
Ссылки на объекты и переменные ссылок на данные нельзя назначать друг другу - Принцип преобразования структуры
Необходимо определить, является ли целевой объект плоской или глубокой структурой. Если это глубокая структура, исходный объект и целевой объект должны быть полностью совместимыми, поскольку при назначении значений между типами глубины не существует правила преобразования типов. Для плоских структур вы можете назначать значения между взаимно несовместимыми структурами. - Принцип преобразования внутренней таблицы
Внутренняя таблица может быть назначена только другим внутренним объектам таблицы. Успешность назначения зависит от того, совместима ли структура строк обоих типов и не имеет ничего общего с типом таблицы или ключевым словом таблицы.
Описание:
1. Если объединено несколько математических выражений, приоритетом является операция в скобках, функция, степень, арифметическое умножение и деление и, наконец, сложение и вычитание. Для операторов с одинаковым приоритетом действуйте слева направо таким образом, за исключением возведения в степень, которое выполняется справа налево.
2. При использовании математических выражений операторы +, -,,/,*, а скобки - это ключевые слова ABAP, и до и после них должны быть пробелы.- Математическая функция
Существует два типа математических функций: тип параметра одного типа функции является произвольным, и тип во время операции зависит от типа параметра; значение другого типа функции всегда является плавающей запятой, а значение другого типа операции Данные преобразуются системой в тип с плавающей запятой заранее.
1 Список функций любого типа параметра
2 Список функций для параметров типа F
- Расчет времени и даты
Система будет автоматически увеличиваться или уменьшаться в соответствии с этими двумя конкретными типами данных. Например, добавьте 1 к дате 20041231, и результат должен быть 20050101 вместо 20041232. То же самое верно для времени, результатом является разница в секундах.
- Основной формат вывода
Операторы вывода и форматирования данных - это WRITE, ULINE, FORMAT, SKIP и т. д. Наиболее важным из них является оператор WRITE.
- Форматированный вывод
Синтаксический формат WRITE . f .
Параметры форматирования относятся к конкретному типу данных поля, а соответствующие параметры можно применять только к определенным типам.
- Общие логические операторы
- Оператор типа символа
используется для определения того, установлены ли различные отношения содержания между двумя символьными операндами. После завершения сравнения возвращается логическое значение. - Оператор IS
используется для проверки того, находится ли объект данных в начальном состоянии или были ли выделены символы поля, параметры и т. д.- Используйте IS INITIAL, чтобы проверить, является ли поле начальным значением
. f IS INITIAL . - Используйте IS ASSIGNED, чтобы проверить, назначен ли символ поля
. fs IS ASSIGNED . - Используйте IS [SUPPLIED | REQUESTED], чтобы проверить, заполнены ли параметры фактическими параметрами
. p IS [SUPPLIED|REQUESTED]
- И и
- Или или
- НЕ
3 структуры управления
- Безусловный цикл
Цикл, который не требует логического суждения перед выполнением блока внутреннего оператора, реализуется в ABAP с использованием оператора DO.
n используется для управления количеством циклов, это может быть текст или переменная. Если это 0 или отрицательное число, система не входит в бесконечный цикл, если нет ограничения на значение n, вы должны использовать операторы EXIT, STOP или REJECT для принудительного завершения конца цикла, в противном случае она войдет в бесконечный цикл. Во время цикла системное поле SY-INDEX содержит значение обработанного цикла. Циклы DO могут быть вложенными, а SY-INDEX всегда является индексом текущего времени цикла.
Строки , которые широко используются в программировании ABAP, представляют собой последовательность символов.
Мы используем переменные типа C для хранения буквенно-цифровых символов, с минимальным 1 символом и максимальным 65 535 символами. По умолчанию они выровнены по левому краю.
Создание строк
Следующее объявление и инициализация создает строку, состоящую из слова «Hello». Размер строки соответствует количеству символов в слове «Hello».
Следующая программа является примером создания строк.
Приведенный выше код производит следующий вывод –
Длина строки
Чтобы узнать длину символьных строк, мы можем использовать оператор STRLEN . Функция STRLEN () возвращает количество символов, содержащихся в строке.
пример
Приведенный выше код производит следующий вывод –
ABAP поддерживает широкий спектр операторов, управляющих строками.
CONCATENATE
Две строки соединяются, чтобы сформировать третью строку.
конденсироваться
Это утверждение удаляет символы пробела.
Используется для определения длины поля.
Используется для замены символов.
Для запуска поиска в символьных строках.
Используется для перемещения содержимого строки влево или вправо.
Используется для разделения содержимого поля на два или более полей.
CONCATENATE
Две строки соединяются, чтобы сформировать третью строку.
конденсироваться
Это утверждение удаляет символы пробела.
Используется для определения длины поля.
Используется для замены символов.
Для запуска поиска в символьных строках.
Используется для перемещения содержимого строки влево или вправо.
Используется для разделения содержимого поля на два или более полей.
В следующем примере используются некоторые из вышеупомянутых утверждений:
пример
Приведенный выше код производит следующий вывод –
В случае конкатенации ‘sep’ вставляет пробел между полями.
Оператор CONDENSE удаляет пробелы между полями, но оставляя только 1 символьный пробел.
«NO-GAPS» является необязательным дополнением к выражению CONDENSE, которое удаляет все пробелы.
ABAP предлагает различные типы параметров форматирования для форматирования вывода программ. Например, вы можете создать список, включающий различные элементы в разных цветах или стилях форматирования.
Оператор WRITE – это оператор форматирования, используемый для отображения данных на экране. Существуют разные параметры форматирования для оператора WRITE. Синтаксис оператора WRITE –
В этом синтаксисе представляет спецификацию выходного формата, которая может быть косой чертой (/), которая указывает на отображение вывода, начинающегося с новой строки. Помимо прямой косой черты, спецификация формата включает номер столбца и длину столбца. Например, оператор WRITE / 04 (6) показывает, что новая строка начинается со столбца 4, а длина столбца равна 6, тогда как оператор WRITE 20 показывает текущую строку со столбцом 20. Параметр представляет переменную данных или пронумерованный текст
В следующей таблице описаны различные пункты, используемые для форматирования:
Выровнен по левому краю
Указывает, что вывод выровнен по левому краю.
Обозначает, что вывод центрирован.
Выравниваются по правому краю
Указывает, что вывод выровнен по правому краю.
Вывод начинается прямо под полем .
Указывает, что пробел после поля отклоняется.
ИСПОЛЬЗОВАТЬ РЕДАКТИРОВАТЬ МАСКУ
Обозначает спецификацию шаблона формата . Использование маски без правки: указывает, что шаблон формата, указанный в словаре ABAP, деактивирован.
Если поле содержит только нули, то они заменяются пробелами.
Выровнен по левому краю
Указывает, что вывод выровнен по левому краю.
Обозначает, что вывод центрирован.
Выравниваются по правому краю
Указывает, что вывод выровнен по правому краю.
Вывод начинается прямо под полем .
Указывает, что пробел после поля отклоняется.
ИСПОЛЬЗОВАТЬ РЕДАКТИРОВАТЬ МАСКУ
Обозначает спецификацию шаблона формата . Использование маски без правки: указывает, что шаблон формата, указанный в словаре ABAP, деактивирован.
Если поле содержит только нули, то они заменяются пробелами.
Ниже приведены параметры форматирования полей числового типа.
Указывает, что на экране не отображается ведущий знак.
Указывает, что в типе F (поля с плавающей запятой) показатель степени определяется в .
Поля типа P (упакованные числовые типы данных) сначала умножаются на 10 ** (- r), а затем округляются до целочисленного значения.
Обозначает, что форматирование выполняется в соответствии со значением валюты , которое хранится в таблице базы данных TCURX.
Указывает, что число десятичных разрядов фиксировано в соответствии с единицей , как указано в таблице базы данных T006 для типа P.
Указывает, что число цифр должно отображаться после десятичной точки.
Указывает, что на экране не отображается ведущий знак.
Указывает, что в типе F (поля с плавающей запятой) показатель степени определяется в .
Поля типа P (упакованные числовые типы данных) сначала умножаются на 10 ** (- r), а затем округляются до целочисленного значения.
Обозначает, что форматирование выполняется в соответствии со значением валюты , которое хранится в таблице базы данных TCURX.
Указывает, что число десятичных разрядов фиксировано в соответствии с единицей , как указано в таблице базы данных T006 для типа P.
Указывает, что число цифр должно отображаться после десятичной точки.
Например, в следующей таблице показаны различные параметры форматирования полей даты.
Вариант форматирования пример DD / MM / YY 13/01/15 MM / DD / YY 01/13/15 DD / MM / YYYY 13/01/2015 MM / DD / YYYY 01/13/2015 DDMMYY 130115 MMDDYY 011315 YYMMDD 150113 Здесь DD обозначает дату в двух цифрах, MM обозначает месяц двумя цифрами, YY обозначает год двумя цифрами, а YYYY обозначает год четырьмя цифрами.
Давайте рассмотрим пример кода ABAP, который реализует некоторые из приведенных выше параметров форматирования:
Читайте также:
- Используйте IS INITIAL, чтобы проверить, является ли поле начальным значением