平时在 ‘ 工地搬砖 ’,很少关注基础技能,闲来无事,拿起来复习一下 !
实际在项目中用到的非常之少,所以说学编程,先学框架,在学细节 !,因为细节太多,学不完 !
1 移动字符串
按给定位置数移动字符串
SHIFT <c> [BY <n> PLACES] [<mode>].
将字段<c>移动<n>个位置。
如果省略 BY <n> PLACES,则将<n>解释为一个位置。
如果<n>是 0 或负值,则<c>保持不变。
如果<n>超过<c>长度,则<c>用空格填充。
<n>可为变量。
对不同(<mode>)选项,可以按以下方式移动字段<c>:
LEFT: 向左移动<n>位置,右边用<n>个空格填充(默认设置)。
RIGHT: 向右移动<n>位置,左边用<n>个空格填充。
CIRCULAR:向左移动<n>位置,以便左边<n>个字符出现在右边。
移动字符串到给定串位置
SHIFT <c> UP TO <str><mode>.
查找<c>字段内容直到找到字符串<str>并将字段<c>移动到字段边缘。
如果<c>中找不到<str>,则将 SY-SUBRC 设置为 4 并且不移动<c>。否则,将 SY-SUBRC 设置为0。
根据第一个或最后一个字符移动字符串
SHIFT <c> LEFT DELETING LEADING <str>.
SHIFT <c> RIGHT DELETING TRAILING <str>.
左边的第一个字符或右边的最后一个字符出现在<str>中,该语句将字段<c>向左或向右移动。
字段右边或左边用空格填充,<str>可为变量。
2 替换字段内容
REPLACE <str1> WITH <str2> INTO <c> [LENGTH <l>].
将<c>中的<str2>用<str1>替换
指定长度<l>,则只替换模式的相关部分。
SY-SUBRC 的返回代码为0,则替换,否则为替换
3 大小写转换并替换字符串
TRANSLATE <c> TO UPPER CASE.
TRANSLATE <c> TO LOWER CASE.
TRANSLATE <c> USING <r>.
根据字段<r>中存储的替换规则替换字段<c>的所有字符。
<r>包含成对字母,其中每对的第一个字母用第二个字母替换。
4 转换为可排序格式
CONVERT TEXT <c> INTO SORTABLE CODE <sc>.
字符字段<c>填充可排序目标字段<sc>。
字段<c>必须是类型 C且字段<sc>必须是类型 X ,最小长度为<c>长度的16倍。
转换后按字母排序,否则是按内部编码顺序
5 覆盖字符字段
OVERLAY <c1> WITH <c2> [ONLY <str>].
用<c2>的内容覆盖字段<c1>中包含<str>中字母的所有位置。<c2>保持不变。
如果省略 ONLY <str>,则覆盖字段<c1>中所有包含空格的位置。
6 搜索字符串
SEARCH <c> FOR <str><options>.
字段<c>中搜索<str>中的字符串。
成功SY-SUBRC 的返回代码值设置为0,并将 SY-FDPOS 设置为字段<c>中该字符串的偏移量。
否则将 SY-SUBRC 设置为4。
<str>格式:
<pattern> 搜索<pattern>(任何字符顺序)。忽略尾部空格
.<pattern>. 搜索<pattern>,但是不忽略尾部空格
*<pattern> 搜索以<pattern>结尾的词
<pattern>* 搜索以<pattern>开始的词
搜索字符字段<c>的各种选项(<options>):
ABBREVIATED
在字段<c>中搜索包含<str>中指定字符串的单词,其中字符可能被其它字符隔开。
单词和字符串的第一个字母必须相同。
STARTING AT <n1>
在字段<c>中搜索从<n1>开始的<str>。
结果 SY-FDPOS 参照相对于<n1>的偏移量而不是字段的开始。
ENDING AT <n2>
在字段<c>搜索<str>直到位置<n2>。
AND MARK
如果找到搜索串,则将搜索串中的所有字符(和使用 ABBREVIATED 时的所有字符)转换为大写形式。
7 获取字符串长度
[COMPUTE] <n> = STRLEN(<c> ).
8 压缩字符串去空格
CONDENSE <c> [NO-GAPS].
去除字段<c>中的前导空格并用一个空格替换其它空格序列。结果是左对齐单词,每个单词用空格隔开。
如果指定附加的 NO-GAPS,则去除所有空格。
9 连接字符串
CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].
连接字符串<c1>与<cn>并将结果赋给<c>。
该操作忽略尾部空格。
附加 SEPARATED BY <s>允许指定字符字段<s>,它放置在单个字段间已定义的长度中。
10 拆分字符串
SPLIT <c> AT <del> INTO <c1> ... <cn>.
在字符字段<c>搜索分界字符串<del>,并将分界符之前和之后的部分放到目标字段<c1> ... <cn>中。
11 分配字符串部分
MOVE <c1> TO <c2> PERCENTAGE <p> [RIGHT].
将左对齐的字符字段<c1>的百分比<p>(或如果用 RIGHT选项指定,则为右对齐)复制到<c2>。
<p>值可为 0 和 100 之间的任何数。将要从<f1>复制的长度取整为下一个整数。
如果语句中某一参数不是类型 C,则忽略参数 PERCENTAGE。