SHIFT(文字列の指定位置数の移動)
文字ごとの項目内容の移動
以下のような SHIFT 命令のバリアントを使用すると、項目内容を移動することができます。SHIFT を使用すると、文字ごとに項目内容が移動します。
文字列の指定位置数の移動
SHIFT c [BY n PLACES] [mode].
この命令では、項目 c の位置が n 個分だけ移動します。BY n PLACES を省略すると、n は 1 として解釈されます。n が 0 または負の値の場合、c は変更されません。n が c の長さを超えると、c は空白で埋め込まれます。n は変数とすることができます。
さまざまな mode オプションを使用して、項目 c を以下のように移動することができます。
mode を LEFT にした場合
項目内容の位置が n 個分左に移動され、項目の右端に n 個の空白が追加されます (デフォルト)。
mode を RIGHT にした場合
位置が n 個分右に移動され、項目の左端に n 個の空白が追加されます。
mode を CIRCULAR にした場合
項目内容を周期的に移動します。内容の位置が n 個分左に移動され、左側の n 個の文字が右に移動されます。
DATA: t(10) TYPE c VALUE 'abcdefghij',
string LIKE t. string = t.
WRITE string.
SHIFT string.
WRITE / string.
string = t.
SHIFT string BY 3 PLACES LEFT.
WRITE / string.
string = t.
SHIFT string BY 3 PLACES RIGHT.
WRITE / string.
string = t.
SHIFT string BY 3 PLACES CIRCULAR.
WRITE / string.
出力:
abcdefghij bcdefghij defghij abcdefg defghijabc
指定文字列への項目内容の移動
SHIFT c UP TO str mode.
この命令は、文字列 str が見つかるまで c の項目内容を検索して、項目 c を項目の端まで移動します。mode オプションは、上の記述と同じです。str は変数とすることができます。
c 内に str が見つからない場合、sy-subrc は 4 に設定され、c は移動されません。これ以外の場合は、sy-subrc は 0 に設定されます。
DATA: t(10) TYPE c VALUE 'abcdefghij',
string LIKE t,
str(2) TYPE c VALUE 'ef'. string = t.
WRITE string. SHIFT string UP TO str.
WRITE / string. STRING = t.
SHIFT string UP TO str LEFT.
WRITE / string. STRING = t.
SHIFT string UP TO str RIGHT.
WRITE / string. string = t.
SHIFT string UP TO str CIRCULAR.
WRITE / string.
出力:
abcdefghij
efghij
efghij
abcdef
efghijabcd
最初または最後の文字に応じた文字列の移動
SHIFT c LEFT DELETING LEADING str. SHIFT c RIGHT DELETING TRAILING str.
この命令によって、左側の最初の文字または右側の最後の文字が str に現れる場合、項目 c が左または右に移動されます。この場合、項目の右側または左側には空白が埋め込まれます。str は変数にすることができます。
DATA: t(14) TYPE c VALUE ' abcdefghij',
string LIKE t,
str(6) VALUE 'ghijkl'. string = t.
WRITE string. SHIFT string LEFT DELETING LEADING SPACE.
WRITE / string. string = t.
SHIFT string RIGHT DELETING TRAILING str.
WRITE / string.
出力:
abcdefghij
abcdefghij
abcdef
SHIFT(文字列の指定位置数の移動)的更多相关文章
- Java 替换word文档文字,指定位置插入图片
先说下 需要的依赖包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ex ...
- css文字超出指定行数显示省略号
display: -webkit-box; overflow: hidden; word-break: break-all; /* break-all(允许在单词内换行.) */ text-overf ...
- matlab中fseek 移至文件中的指定位置
文章来源:https://ww2.mathworks.cn/help/matlab/ref/fseek.html?searchHighlight=fseek&s_tid=doc_srchtit ...
- 【C语言】编写函数,将一个数的指定位置置0或置1
//编写函数,将一个数的指定位置置0或置1 #include <stdio.h> unsigned int set_bit(unsigned int num, int pos, int f ...
- 【转载】C#中string类使用Remove方法来移除指定位置的字符
在C#的字符串操作过程中,有时候需要将字符串中指定位置的字符移除,此时就可能使用到字符串类string类中的Remove方法,此方法允许指定移除开始的开始的索引位置,以及移除的长度信息等,共有2个重载 ...
- DataTable 指定位置添加列
dt.Columns.Add("id").SetOrdinal(指定位置);
- CONCATENATE命令(文字列の結合)
CONCATENATE命令とは文字列の結合を行う命令である.文字列を扱うChar, Numeric, Dats, Time, Stringの変数で使用する事が可能だ.単純に文字列の結合のみを行う方法. ...
- (转载) popupWindow 指定位置上的显示
popupWindow 指定位置上的显示 标签: androidpopupWindowpopupWindow具体位置放置 2014-07-09 16:23 1114人阅读 评论(0) 收藏 举报 分 ...
- jQuery 控制網頁捲軸移動 & Ignore link '#' method jump action
$('a.gotoheader').click(function(){ // 讓捲軸移動到 0 的位置 $(); // ignore link "#" method return ...
随机推荐
- oozie fork join结点
oozie可以用fork和join节点进行多任务并行处理,同时fork和join也是同时出现,缺一不可. 语法: <workflow-app name="[WF-DEF-NAME]&q ...
- 关于自学C语言这件事
说在前面 为什么会写下这篇文章?本人也并不是什么大神,但是也自学了很久,从一个小白开始自学,期间走过很多弯路,掉过许多坑.一路跌跌撞撞下来,算是有了点收获,有了点感想,将它们记录下来,希望能帮助新入坑 ...
- C++ decltype类型说明符(尾置返回类型使用)
转自https://blog.csdn.net/yhl_leo/article/details/50865552 1 基本语法 decltype 类型说明符生成指定表达式的类型.在此过程中,编译器分析 ...
- 【洛谷5309】[Ynoi2012] D1T1(分块)
点此看题面 大致题意: 两种操作,区间求和,将形如\(ax+y\)的位置的元素值加\(z\). 分块 这种题目显然就是按照\(x\)与\(\sqrt n\)的大小关系来分块. 对于\(x>\sq ...
- python nmap模块使用进行主机探测(ICMP)
终于审核通过了......第一次用博客,想记录自己的学习情况,分享知识. 废话不多说,第一篇blog,大牛请轻喷. 资产清点首先需要进行主机探测,将存活主机统计下来再进行进一步的指纹识别及端口探测.若 ...
- HTML5之canvas基本API介绍及应用 1
一.canvas的API: 1.颜色.样式和阴影: 2.线条样式属性和方法: 3.路径方法: 4.转换方法: 5.文本属性和方法: 6.像素操作方法和属性: 7.其他: drawImage:向画布上绘 ...
- bootstrapPaginator设置同步会翻2页的小坑
因为需要用到post的返回值在做后面的决定.不想嵌套在回调函数中.网上找了一下.设置为同步 $.ajaxSetup( { async: false }); 结果bootstrap的翻页组件就出了bug ...
- 运用Xdebug调试和优化PHP程序
什么是Xdebug? Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.Xdebug现在的最新版本是xdebug 2.0.0beta ...
- 阻止vue事件冒泡的方法
- 序列(Sequence)创建、使用、修改和删除
序列(Sequence)是用来生成连续的整数数据的对象.序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成. 语法结构:创建序列 CREATE SEQUENCE sequence_na ...