プロデル2.0.1226から挙動が変わりました

投稿者:和泉P 投稿日:2024/02/29(Thu) 17:12:20 No.2340

いつもお世話になっております。
添付のようなプログラムをつかっております

データ表の「選択する」手順は マニュアルには「データ表から条件に合致する行だけを配列として取り出す」とだけ記載されており、実際にはデータ行の配列が返っているようなので このような記述をしておりました 

 2.0.1191 では問題なかったのですが 2.0.1226 から 最後の「〇文字取り出す」のところで
「データ行 (オブジェクト@7354030)」という選択肢はありません。次の要素が指定できます。先頭,末尾 [エラー番号308] プロデル 2.0.1226 (64)。」というエラーが出るようになりました

「〇文字取り出す」の対象である【抽出用見積番号】はちゃんと文字列として認識されているのですが 不思議です

さらに不思議なのが 9行目にコメント化してあります 「報告する」文のコメントを外すと動くようになります

とりあえず、16行目のように ((対象行DIMすべての一覧)(1))(4) でエラー回避しましたが プロデルらしくないし できるだけ列番での取得でなく カラム名での取得をしたいです
-----------------------------------------------------------------------
データ表を作って抽出用データ表とする
抽出用データ表に{「工事 ID」,「dmy1」,「dmy2」,「見積番号」,「値段」}という列を加える
抽出用データ表に{「工事 ID」=「a007F00002iFyAy」,見積番号=「23M-0456」,値段=「1500」}を追加する
抽出用データ表に{「工事 ID」=「a007F00002iFzvc」,見積番号=「23M-0317」,値段=「2500」}を追加する
抽出用データ表に{「工事 ID」=「a007F00002iFzvc」,見積番号=「22M-0149」,値段=「2500」}を追加する
工事ID=「a007F00002iFzvc」
抽出用データ表から「`工事 ID` = '[工事ID]'」を「見積番号」で選択して対象行DIMとする  'カラム名にスペースを含むのでバッククォートで囲んだ 通常は要らない。返り値は条件に合致するデータ行の配列。
  
'対象行DIMすべての一覧を報告する    '値の2次元配列が返る これをコメント化し 下の「見積番号」を取得する を使うと 文字取り出す がエラーになる(2.0.1226)
'「[対象行DIM]」を報告する  ’データ行オブジェクトの配列が返る
'「[対象行DIMの先頭]」を報告する  ’データ行オブジェクトが返る
'「[対象行DIMの先頭の一覧]」を報告する  '値の配列が返る

抽出用見積番号=「[(対象行DIMの先頭)から「見積番号」を取得する]」    '下の「先頭から3文字取り出す」でエラー
'抽出用見積番号=((対象行DIMの先頭)の一覧)(4)  '下の「先頭から3文字取り出す」でエラー
'抽出用見積番号=((対象行DIMすべての一覧)(1))(4)    '[対象行DIM]は[見積番号]でソートして取り出されているから その一番若い行を取り出して その4列目すなわち[見積番号]を取り出す

抽出用見積番号を報告する
サブフォルダStr=(抽出用見積番号)の先頭から3文字取り出す  ’プロデル 2.0.1191では問題なかったが 2.0.1226に上げたらエラー 「データ行 (オブジェクト@7354030)」という選択肢はありません。次の要素が指定できます。先頭,末尾 [エラー番号308] プロデル 2.0.1226 (64)。抽出用見積番号はちゃんと文字列として認識されている。いろいろと厳密に記述してみたがダメ
サブフォルダStrを報告する

自己レス

投稿者:和泉P 投稿日:2024/03/02(Sat) 12:11:39 No.2341

ゆうとさま お世話になります
自己レスです
文字列-逆引き辞典
https://produ.irelang.jp/docs/lookup/string_lookup.htm#string1
を見て、
サブフォルダStr=(抽出用見積番号)の先頭から3文字取り出す 

サブフォルダStr=(抽出用見積番号)から先頭から3文字取り出す 
に直すことで エラーがおさまりました

文字列マニュアル https://produ.irelang.jp/docs/primitive/string.htm#%E5%85%88%E9%A0%AD%E3%81%8B%E3%82%89%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99
には 「内容の先頭から5文字取り出して表示する」 が挙げられていますし プロデルの文法としては 本来 「の先頭から」も通るのでしょうか
【文字列】から先頭から という構文は 「から」が繰り返されて日本語的にすっきりしないので できれば 
【文字列】の先頭から と書きたいところです

文字列の取り出す手順の件

投稿者:ゆうと 投稿日:2024/03/07(Thu) 14:01:50 No.2344

追加でのご質問の件

> 文字列マニュアル には 「内容の先頭から5文字取り出して表示する」 が挙げられていますし プロデルの文法としては 本来 「の先頭から」も通るのでしょうか
> 【文字列】から先頭から という構文は 「から」が繰り返されて日本語的にすっきりしないので できれば 
> 【文字列】の先頭から と書きたいところです

今は「〜の先頭から」を推奨します。
現時点で、文字列種類には「〜の先頭から取り出す」「〜から先頭から取り出す」の2つの書き方が定義されています。「〜から〜から」の定義は、過去バージョンとの互換性のために維持されていますが、どちらを使っても問題ありません。

逆引きの文字列の説明は、意図せず古い書き方(〜から〜からの構文)になっていましたので、こちらは修正しました。

歴史的な経緯もあり、マニュアルでの表記が統一されていませんでした。
ありがとうございます。

意図しない変更、修正しました

投稿者:ゆうと 投稿日:2024/03/07(Thu) 13:53:23 No.2343

こんにちは お世話になっております。

プログラムありがとうございます。
エラーメッセージが表示される点、確認しました。

調査しましたところ、確かに2.0.1226での修正が意図せず影響していたようです。
元々のプログラムには誤りはありません。
最新版でバグを修正しましたので、ダウンロードしてお試しください。

▲ページの先頭へ

- WebForum -