プロデル2.0.1314では、文字列に関する手順の文字位置の指定について、仕様の一貫性を持たせるため、次の手順の仕様を変更致しました。
仕様変更された手順
- 「文字列」種類の「【開始文字位置】文字目から【キーワード】を探す」手順
- 「文字列」種類の「【開始文字位置】文字目から【キーワード:文字列】を、前方向へ探す」手順
- 「テキスト」種類の「【開始文字位置】文字目から【文字数】文字、選択する」手順
変更内容
上記の手順の引数『【開始文字位置】文字目』について、本来は、先頭を1文字目として数えて指定すべき所が、0文字目から数えて指定する仕様となっておりました。これは、設計上、意図しない仕様です。
内容は「にほんごぷろぐらみんぐげんご」
内容の3文字目から「ん」を探して、文字位置とする
文字位置を表示する //2.0.1313以前は「10」、2.0.1314以降は「3」
プロデル2.0.1314以降では、上記の手順の「~文字目」について、他の「~文字目」序数詞を持つ手順と同様に、1文字目から数えて指定する仕様に変更いたしました。
この仕様変更によって、すでに作成されたプロデルのプログラムが正常に動作しなくなる影響がありますが、将来的な観点で仕様の一貫性を維持するため、やむを得ず仕様変更しました。上記の手順を使用していたユーザにはご迷惑をおかけいたします。
「探す」手順の戻り値は、従来より1文字目から数えた文字位置となっており、戻り値には変更ありません。
なお、プロデルでは原則として「文字目」「番目」序数詞を含む引数については、1文字目、1番目から数える仕様で統一しております。
※本件は @mikecat_mixc さんのプロデルの文字列に関しての記事「ヒットした位置に1を足した位置から検索したからといって、直後の検索対象がヒットすると思ったか?」内でご指摘に対する対応となります。ありがとうございます。
バージョン指定のプリプロセッサ導入
今回の仕様変更と同時に、作成したプロデルのバージョンを明示的に指定するプリプロセッサ(※プロデル)を導入しました。
今回の仕様変更で影響があるプログラムの冒頭に、次のプリプロセッサを指定することで、プログラム本体を修正することなく、従来バージョンと同様の仕様・動作を維持できます。ご活用ください。
※プロデル 1.9.1313
内容は「にほんごぷろぐらみんぐげんご」
内容の2文字目から「ん」を前方向へ探して、文字位置とする
文字位置を表示する //従来バージョンと同様に「3」
なお、この機能は、仕様変更前の挙動を最新バージョンで再現するための機能です。指定したバージョン固有のバグを再現したり、指定したバージョンの実行環境で実行するためのオプションではありませんのでご注意ください。