[UWSC]文字列操作あれこれ [自作関数]

UWSCという開発ソフトを使って作り上げる作業を実際にやってみるカテゴリ。準備した自作関数や使い方、トラブルを記事にしていきます。得るものがあれば幸いです。
今回は、文字列操作を行う自作関数を作りました。

記事の内容
○文字列操作の関数群

新しい環境ではじめるので、最初は準備。

UWSCのリファレンスで文字列操作の関数を見てみる。
   R=COPY(文字列,n1,n2)
とすると、Rには文字列のn1番目からn2個取り出したものが代入される、らしい。

また、
   R=LENGTH(文字列)
とすると、Rには渡された文字列の文字数が代入される、らしい。

うーん。文字列操作はやはりBASIC言語の仕様が一番分かりやすいと思うので、自作関数でそっちに翻訳しときます。下の関数群を作ります。関数の文字数を少なくしただけのものもありますが。

mid関数

1
2
3
FUNCTION mid(txt,n1,n2)
    RESULT=COPY(txt,n1,n2)
FEND
mid関数
1,3行目1
3
FUNCTION mid(txt,n1,n2)
FEND
関数の定義:文字列のn1番目からn2個取り出す-COPYと同じ関数(標準関数を翻訳しただけ)
2行目2    RESULT=COPY(txt,n1,n2)
RESULTにはtxtのn1番目からn2個が代入され、関数の戻り値として返す。
※COPY(文字列,n1,n2)は渡された文字列のn1番目からn2番目を返す関数。
※UWSCでは、固定変数RESULTに代入されたものが関数の戻り値になる。



呼び出し側で、

1S=mid(Pokutarou,3,4)

とすると、変数Sには”kuta(3文字目から4つ)が代入される。

left関数

1
2
3
FUNCTION left(txt,n)
    RESULT=COPY(txt,1,n)
FEND
left関数
1,3行目1
3
FUNCTION left(txt,n)
FEND
関数の定義:左からn文字分を取り出す。
2行目2    RESULT=COPY(txt,1,n)
RESULTにはtxtの1番目からn個(つまり左からn個)が代入され、関数の戻り値として返す。



呼び出し側で、

1S=left(Pokutarou,4)

とすると、変数Sには”Poku(左から4つ)が代入される。

right関数

1
2
3
FUNCTION right(txt,n)
    RESULT=COPY(txt,LENGTH(txt)n+1,n)
FEND
right関数
1,3行目1
3
FUNCTION right(txt,n)
FEND
関数の定義:右からn文字分を取り出す。
2行目2    RESULT=COPY(txt,LENGTH(txt)n+1,n)
RESULTにはtxtの(LENGTH(txt)-n+1)番目からn個(つまり右からn個)が代入され、関数の戻り値として返す。
※LENGTH(文字列)は渡された文字列の文字数を返す関数。



呼び出し側で、

1S=right(Pokutarou,5)

とすると、変数Sには”tarou(右から5つ)が代入される。

len関数

1
2
3
FUNCTION len(txt)
    RESULT=LENGTH(txt)
FEND
len関数
1,3行目1
3
FUNCTION len(txt)
FEND
関数の定義:文字数nを返す。
2行目2    RESULT=LENGTH(txt)
RESULTにはtxtの文字数が代入され、関数の戻り値として返す。
※LENGTH(文字列)は渡された文字列の文字数を返す関数。



呼び出し側で、

1Intg=len(Pokutarou)

とすると、変数Intgには9(文字数)が代入される。

記事の内容は伝わりましたでしょうか。
○文字列操作の関数群

コメント

タイトルとURLをコピーしました