2017年2月6日月曜日

[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(文字数)が代入される。


記事の内容

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


関数群のダウンロードはこちら
func_poku.uwsのコメント欄に呼び出し方が書いてあります。


【関連記事】  [UWSC]奮闘記始めました
[UWSC]文字列中の指定のキーワードありなし判定する関数
[UWSC]タイムアウト関数
[UWSC]配列の最大要素を返す関数


スポンサーリンク



ブログ村へ blogramのブログランキング

ポク太郎の「俺の説明聞いてくれ」 コンテンツ
ポク太郎の「俺の説明聞いてくれ」最キラー記事 コンピュータ(ハード/ソフト)
映画・ドラマ・芸能
変人のつぶやきとトラブル
ホームへ戻る


0 件のコメント:

コメントを投稿