zoukankan      html  css  js  c++  java
  • 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 は変数とすることができます。

    内に 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
  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10517341.html
Copyright © 2011-2022 走看看