文字列オブジェクトの一部を切り落としたり、追加的に文字列を挿入したりするメソッドを、全部ではありませんが、紹介します。正しくはMops 4.0.0 Manual Part III(Class
Reference)をご覧ください(今も有効です)。
文字列の一部切り落とし -- DELETE:
文字列を切り落とすメソッドはDELETE:です。このメソッドは、文字列のアクティブな部分、つまり、POSからLIMまでを切り落とします。サイズは適切に修正され、POSとLIMは削除された部分に集中します。つまり、削除後はアクティブ部分の長さは0になります。
\ This is the |content of the |String Object.
^pos ^lim
DELETE: MyString
\ This is the ||String Object.
DELETE:メソッドは、マニュアルではString+クラスのメソッドとなっていますが、PowerMopsではStringクラスでも使えます。
追加 -- ADD: , $ADD: , +:
現在の文字列に、内容を追加するメソッドもあります。まず。ADD:。
ADD: ( addr len -- )
このメソッドは、パラメタとして与えられた文字列を、メッセージを受ける文字列のposやlimの値にかかわりなく、その文字列の最後にぶら下げます。ただ、追加後は、posもlimも文字列の最後に設定されます。
\ |This string is |
^pos ^lim
" too short." ADD: MyString
\ This string is too short.||
$ADD:メソッドは、働きはADD:と同じですが、パラメタが
文字列オブジェクトのアドレスになります。
AdditionStr $ADD: MyString \ $ADD: ( ^str -- )
追加されるのは、パラメタ文字列のアクティブ部分だけです。
メソッド+: ( c -- )は、「一文字だけ"ADD:"する」ということができます。
& a +: MyString \ 末尾に文字aを追加。pos, limは文末へ。
挿入 -- INSERT: , $INSERT: , CHINSERT:
文字列オブジェクトの途中に文字列を挿入する諸ワードです。すべて、POSの位置に挿入します。挿入後は、POSもLIMも、挿入された文字数分、繰り下がります。
\ MyString = [[文字列オブジェクト]]にはいわゆるASCII文字|が格納できま|す。
" だけではなく、かな漢字を含め任意のデータ" INSERT: MyString
\ MyString = [[文字列オブジェクト]]にはいわゆるASCII文字だけではなく、かな漢字を含め任意のデータ|が格納できま|す。
各メソッドの違いは、ADD:等の場合と同じようなパラメターのちがいです
INSERT: ( addr len -- )
$INSERT: ( ^str -- )
CHINSERT: ( c -- )
なお、マニュアルではCHINSERT:(文字挿入)はString+クラスのメソッドとされていますが、PowerMopsではStringクラスでも使えます。
「追加」「挿入」の補足
追加と挿入は、まだメモリー領域(マスターポインタ)を取得していない文字列インスタンスに対しても実施することができます(つまり、予め"New:"しておく必要がない)。結果は、PUT:などに類似しますが、ともにPOSとLIMの位置が末尾となる点がPUT: との違いです。
関連項目:
最終更新:2019年10月18日 21:33