SPLIT用法
来源:互联网 发布:如何补充胶原蛋白知乎 编辑:程序博客网 时间:2024/05/17 02:58
SPLIT
Syntax
SPLIT dobj AT sep INTO
{ {result1 result2 ...} | {TABLE result_tab} }
[IN {CHARACTER|BYTE} MODE].
Addition:
... IN {CHARACTER|BYTE} MODE
Effect
The content of the operand dobj is separated into segments in accordance with the sequence of separators insep. The results are either stored in individual target fieldsresult1 result2 ... or in the rows of an internal tableresult_tab.
- The following can be specified for the target fields result1 result2 ...:
- Existing character-like or byte-like variables.
- Inline declarations with DATA(var). IfIN CHARACTER MODE is used, the declared variables are of the typestring; if IN BYTE MODE is used, they are of the typexstring.
- The following can be specified for the internal table result_tab:
- An existing internal table with character-like or byte-like row type. It must be astandard table without secondary table keys. The table is initialized before being split.
- An inline declaration with DATA(var). A standard table is declared with the table table row as the primary table key (and without secondary table keys). IfIN CHARACTER MODE is used, the row type is of the typestring; if IN BYTE MODE is used, it is of the typexstring.
At least two target fields result1 result2 ... must be specified.dobj and sep are character-like expression positions.
The system searches the operand dobj from left to right for all occurrences of the content of the operandsep. The search is case-sensitive. All segments from the start of the operand to the first occurrence, between the occurrences, and from the last occurrence to the end of the operand are assigned one by one to the individual target fields result1 result2 ..., or appended to the internal tableresult_tab.
- If the target fields result1 result2 ... or the rows of the internal tableresult_tab have a fixed length and this length is not enough for the segment, the segment is truncated on the right andsy-subrc is set to 4. If the length is greater than the length of the segment, it is padded with blanks or hexadecimal 0 on the right. If the target fieldsresult1 result2 ... or the rows of the internal table result_tab are strings, their length is adjusted to match the length of the associated segment.
- If there are not enough target fields result1 result2 ... to include all the segments,dobj is only split until all the target fields result1 result2 ... have been assigned values, except for the last target field. The remaining content ofdobj is assigned to the final operand, without being split.
- If more target fields result1 result2 ... are specified than required, the surplus target fields with fixed lengths contain blanks or hexadecimal 0 after the assignment. Any surplus strings are initial.
If the content of the operand sep is found immediately at the start ofdobj, or occurs in direct succession in dobj, the result of the separation is an empty string. If the content of sep is at the end of dobj, the search is terminated and no further separation takes place to the right of this point.
If the content of the operand sep is not found or is an empty string, the result of the split is a single segment that contains the whole content ofdobj, and which is assigned to the first individual target field or the first row of the internal table.
In character string processing, the trailing blanks are respected for separatorssep of fixed length, but not in the operand dobj or in the segments produced by the separation.
System Fields
sy-subrcMeaning0The segments were passed to the target fields or the internal table without being truncated.4At least one of the segments was truncated on the right when being passed to the target fields or internal table.Notes
- If enough target fields are specified or the segments have been saved to an internal table, the number of segments created is defined by the number of separators found, as follows:
- If the last occurrence is not at the end of the operand, the number of segments matches the number of occurrences plus 1.
- If the last occurrence is at the end of the operand, the number of segments matches the number of occurrences.
- All single fields result1 result2 ... specified are given values. If these fields have the typen, d, or t in string processing, the type-friendly assignment rules and initial values are not relevant.
- To access the segments of a character string directly in an operand position, asegment function can be used that includes some of the functions of the statementSPLIT.
Addition
... IN {CHARACTER|BYTE} MODE
Effect
The optional IN {CHARACTER|BYTE} MODE addition determines whethercharacter string or byte string processing is carried out. If the addition is not specified, character string processing is carried out. Depending on the type of processing, the operandsdobj, sep, and the target fieldsresult1 result2 ... or the rows of the internal table result_tab must be byte-like or character-like.
Example
The text field text is separated at its blanks, firstly into the three stringsstr1, str2, and str3, and then into an internal table with the row type string. Since the three strings are not enough for all seven parts, str3 contains "drag it is getting old" after the separation, while the internal table contains seven rows; one for each word intext.
DATA text TYPE string.
text = `What a drag it is getting old`.
SPLIT text AT space INTO: DATA(str1) DATA(str2) DATA(str3),
TABLE DATA(itab).
- split 用法
- split用法
- split用法
- split()用法
- split用法
- Split用法
- SPLIT用法
- split的用法-split(".")无效
- String.split()用法
- String.split的用法
- JAVA split 用法
- C#中split用法
- Split函数的用法
- split的用法
- js的split用法
- Java split用法
- String.split()的用法
- String split 用法
- 二维码生成api接口调用示例
- linux下简单模拟文件系统
- CocoaPods_
- MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping
- C语言中的强制类型转换
- SPLIT用法
- uva 11520 - Fill the Square - D 填方块 贪心
- wpa_supplicant-0.8 state machine
- D14
- How to prepare tech interview
- size_t类型
- [疯狂Java]网络:IP地址和端口号
- C# 图片添加旋转字体文字,实现图片装逼功能
- IPython