「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@721) [高] [解決]
@721■ (#2290) ”範囲切り取る”がBを指定しないと動かない - K.Saka (2014-03-16 01:31) /高 未処理
【症状】SのAからBまで範囲切り取る
で、説明には「SにBが存在しないとき、Sの最後まで切り取る。」とあるので、
SのAから範囲切り取る
にすると、Bが不足しているとエラーが返される。
【再現方法(サンプルプログラム)】
Sは「あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの」
Sの「さしすせそ」から範囲切り取る。
Sを表示。

#結果は最終的にSが
「あいうえお
かきくけこ」となれば成功。

【要望】問題の解決
【バージョン】CUIで実行。1.539にて確認。


(#2292) 引数Bを与えて下さい - のなお (2014-03-18 16:11) /高 確認待ち
エラー内容の通りです。Bを指定して下さい。

> SにBが存在しないとき、Sの最後まで切り取る。
このBとはSの文章内にBの文字列が存在しなければ、という意味です。
「範囲切り取る」は関数です。決められた引数(パラメータ)は必ず与えなければなりません。

#ここから
Sは「あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの」
Sの「さしすせそ」から「最後」まで範囲切り取る。
Sを表示。
#ここまで

「最後」という文字列は含まれていないので、最後まで切り取られます。

結果:
あいうえお
かきくけこ


#-----------------------------------------------------------------------
以下のように、関数を上書きしてご自身で改造することも出来ます。

#ここから
Sは「あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの」
Sの「さしすせそ」から範囲切り取る。
Sを表示。

●範囲切り取る({参照渡し 文字列=?}SのAから{文字列=""}Bまで|SでAからBを|Bまでを)  #★1
  もし、Bが空ならば、BはAをBASE64エンコード  #★2
  SのAからBまでシステム:範囲切り取る  #★3
#ここまで


「範囲切り取る」関数を上書きしています。
★1では、Bにデフォルトで空の文字列を与えています。
★2では、Bが空だったら、AをもとにBASE64エンコード文字を与えています。
★3では、同名関数のループに陥らないように、「システム:」文字を付けて正規の「範囲切り取る」関数を呼び出しています。

ご参考まで。

(#2326) 解決ということで閉じます - クジラ飛行机 (2014-08-25 18:35) /高 解決
のなおさん、フォローありがとうございました。

(#2290)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能