Re: 現象再現できませんでした

投稿者: 投稿日:2020/09/21(Mon) 09:38:46 No.2006

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

 鯨飲はわかりませんでしたが、1.7.1023に更新したら、なぜかエラーにならなくなりました。
 ちょっと腑に落ちませんが、解決したのでよしとします。

 それでは。

現象再現できませんでした

投稿者:ゆうと 投稿日:2020/09/20(Sun) 13:39:55 No.2005

こんにちは ゆうとです。
いつもお世話になっております。

いろいろ試しましたが現象は確認できませんでした。
もし発生条件が分かりましたら教えてください。

なお、次のように書くこともできますのでお試しください。

--------------
一覧は、{1,2,3,4,5}
削除番号は、2
一覧は、一覧の[削除番号]番目を消したもの
一覧を表示する
--------------

よろしくお願いします。

配列からの削除でエラーが出る

投稿者: 投稿日:2020/09/19(Sat) 14:01:39 No.2004

 お世話になります。

 これまた再現条件がわからないのですが、配列から項目を削除しようとすると、エラーが出ることがあります。
 以下はサンプルのソースですが、これはうまく動くようです。

----- サンプルソース -----
一覧は、{1,2,3,4,5}
削除番号は、2
一覧は、一覧から[削除番号]番目を消したもの
一覧を表示する
--------------------

 エラー内容は、下記のような感じです。

----- エラー内容 -----
『データ一覧の[削除番号]番目を消したもの』という部分で
動詞『消したもの』に適した手順が見つかりません。
複文ではない呼出し文で補語は省略できません。

手順の候補:
[文字列]から【文字数:整数】文字消す
【名前:文字列】を[パネルベース]から消す
【部品:ウィンドウ部品】を[パネルベース]から消す
【文字数:整数】文字[文字列]から先頭から 消す
【文字数:整数】文字[文字列]から末尾から 消す
[文字列]の【開始位置】文字目から【文字数:整数】文字消す
[文字列]からスペースを 消す
[文字列]から左スペースを 消す
[文字列]から右スペースを 消す
[配列]から重複を 消す
[配列]の【番号】番目を削除
【番号:整数】を[配列]から削除
【キー:基本オブジェクト】を[辞書]から消す
【列番号:整数】列目を[表配列]から削除
【行番号】行目を[表配列]から削除
【番号:整数】を[表配列]から削除
【名前:文字列】を[ウィンドウ]から消す
【部品:ウィンドウ部品】を[ウィンドウ]から消す
【名前:文字列】を[カスタムウィンドウ部品]から消す
【部品:ウィンドウ部品】を[カスタムウィンドウ部品]から消す
[オプションファイル]について【設定キー】というキーを消す
[オプションファイル]について〈【設定キー】から〉【設定見出し】という見出しを消す
【項目:文字列】を[選択リスト]から消す
[選択リスト]の【番号】番目を消す
【名前:文字列】を[タブフレーム]から消す
[タブフレーム]の【番号】番目を消す
【タブ:タブページ】を[タブフレーム]から消す
【名前:文字列】を[タブページ]から消す
【部品:ウィンドウ部品】を[タブページ]から消す
[タブページ]を消す
【名前:文字列】を[ツリー]から消す
[ツリー]の【番号】番目を消す
【項目:ツリー項目】を[ツリー]から消す
【名前:文字列】を[ツリー項目]から消す
[ツリー項目]の【番号】番目を消す
【項目:ツリー項目】を[ツリー項目]から消す
【名前:文字列】を[リストビュー]から消す
[リストビュー]の【番号】番目を消す
【項目:リストビュー項目】を[リストビュー]から消す
【名前:文字列】を[フレーム]から消す
【部品:ウィンドウ部品】を[フレーム]から消す
【項目:文字列】を[リストボックス]から消す
[リストボックス]の【番号】番目を消す
【項目:文字列】を[アップダウンリスト]から消す
[アップダウンリスト]の【番号】番目を消す
【キー:文字列】を[シンプルツールバー]から消す
[シンプルツールバー]の【番号】番目を消す
【キー:文字列】を[シンプルステータスバー]から消す
[シンプルステータスバー]の【番号】番目を消す
【名前:文字列】を[ツールバー]から消す
[ツールバー]の【番号】番目を消す
【項目】を[ツールバー]から消す
【名前:文字列】を[ツールパネル]から消す
【部品:ウィンドウ部品】を[ツールパネル]から消す
ステータスバー:【名前:文字列】を消す
[ステータスバー]の【番号】番目を消す
ステータスバー:【項目】を消す
【項目:文字列】を[選択リスト部品]から消す
[選択リスト部品]の【番号】番目を消す
【名前:文字列】を[メニューボタン部品]から消す
[メニューボタン部品]の【番号】番目を消す
【項目】を[メニューボタン部品]から消す
【名前:文字列】を[メニュー付きボタン部品]から消す
[メニュー付きボタン部品]の【番号】番目を消す
【項目】を[メニュー付きボタン部品]から消す
【選択パス:文字列】を[XML文章]から削除
【番号】行目を[データ表]から消す

[エラー番号129] [データチェック:263行目]
--------------------

 ちなみに、プロデルの1.7.1019くらいまではうまく動いていました。
 もし、修正可能でしたら、修正いただけると幸いです。
 環境は、Windows10 2004 64ビット、プロデル Ver.1.7.1021です。

 以上、よろしくお願いいたします。

対応ありがとうございます

投稿者: 投稿日:2020/09/19(Sat) 13:50:22 No.2003

 お世話になります。

 対応いただき、ありがとうございます。
 うまく取得できていることを確認しました。

 以上、今後ともよろしくお願いいたします。

「すべて」後置子の奇妙な結果

投稿者:碁盤鮫 投稿日:2020/09/14(Mon) 04:11:40 No.2002

名詞型手順(名詞手順?)や演算子を用いた式で「すべて」後置子を使ったときの結果がおかしいようです。手元に記録はありませんが、以前は問題なく使えていたと思います。

ーーーーーーーーーー テストプログラム
{120,160,220}すべてに1.08を掛けたものを報告
{120,160,220}すべてと1.08の積を報告
{120,160,220}すべてと1の積を報告
{120,160,220}すべてと0の積を報告
{120,160,220}すべてと0の和を報告
{「イ」,「ロ」,「ハ」}すべて&「!」を報告
{1,2,3}すべてに100を掛けたものを報告
{「イ」,「ロ」,「ハ」}すべて&「!」を報告
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
{129.60000000000002,172.8,237.60000000000002}
256.60800000000006
237.60000000000002
0
237.60000000000002
237.60000000000002!
{100,200,300}
300!
ーーーーーーーーーーーーーーーーーーーー

また、一つの手順呼び出しに「すべて」後置子を複数回使ったとき、あまり意味のある結果が得られず、エラーにもなりません。

ーーーーーーーーーー テストプログラム
{120,160,220}すべてに{1.08,1.08,1.08}すべてを掛けたものを報告
{120,160,220}すべてに{1.08}すべてを掛けたものを報告
{120,160,220}すべてに{}すべてを掛けたものを報告
{120,160,220}すべてに無すべてを掛けたものを報告
{120,160,220}すべてに123すべてを掛けたものを報告
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
{14400,25600,48400}
{14400,25600,48400}
{14400,25600,48400}
{14400,25600,48400}
{14400,25600,48400}
ーーーーーーーーーーーーーーーーーーーー

対応しました

投稿者:ゆうと 投稿日:2020/09/13(Sun) 15:27:27 No.2001

こんにちは ゆうとです。

関連付け取得の件、とりあえず1.7.1021で対応しました。
ただ、関連付けの設定はいくつかのパターンがあり、
拡張子によっては「取得する」で正しく取得できない場合もあります。

関連付けの管理が目的ということでしたら、レジストリ関連の種類を使う方がよいかもしれません。
それでは。

例外が「発生した場合」での例外発生

投稿者:碁盤鮫 投稿日:2020/09/13(Sun) 03:39:16 No.2000

例外監視文の「発生した場合」部分を実行中に、重ねて例外が発生した場合、プログラムの実行が中断されるようです。

ーーーーーーーーーー テストプログラム
「今、例外監視文に入ります。」と報告
例外監視
  1÷0を報告
発生した場合
  「今、<発生した場合>部分に入りました。」と報告
  「(エラーは無でない? [エラーが無でない])」と報告
  {111}(-1)を報告
監視終わり
「今、例外監視文から出ました。」と報告
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
今、例外監視文に入ります。
今、<発生した場合>部分に入りました。
(エラーは無でない? ×)
ーーーーーーーーーーーーーーーーーーーー

このような場合、改めて例外が送出される、というのが他の言語での普通の仕様だと思われます。例えば、捕捉した例外を別の種類の例外として送出しなおすといった処理が、実際によくあります。また、「発生した場合」の処理をテスト、デバッグする際に決定的に重要です。

この問題は、私がこれまで例外監視文を使う上で常に不便に思ってきたことなのですが、例外監視文の他の(仕様の明確な)不具合の解決を優先しようとしたため、つい後回しにしてきました。

(なお、テストプログラムで示したとおり、「エラー」特殊変数の値が無になる問題が(スミレ畑で)解決していないことを念のため補足しておきます。)

日本語風の(演算子を用いない)四則演算

投稿者:碁盤鮫 投稿日:2020/09/12(Sat) 05:18:34 No.1999

●「足す」について

「〜と〜を足したもの」という名詞形が使えないようです。

ーーーーーーーーーー テストプログラム
1と1を足して報告する
1と1を足すすすを報告する
1と1を足を報告する
1と1を足したものを報告する
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
2
2
2
問題が発生しました。
『1と1を足したものを報告する』という部分で
助詞が一致する「報告する」手順が見つかりません。
手順に必要な助詞が書かれていないか、違うオブジェクトを指定しています。

手順の候補:


[エラー番号118] [はじめ:4行目]
ーーーーーーーーーーーーーーーーーーーー

なお、マニュアルで、「【値】を【変数名】へ足す」の文例が、「【値】と【値】を足す」の文例として記載されています。
https://docs.utopiat.net/rdr/reference/core/math.htm#%E8%B6%B3%E3%81%99

●「引く」について

https://docs.utopiat.net/rdr/reference/core/math.htm#%E5%BC%95%E3%81%8F
マニュアルには「【値】から【値】を、引く」とありますが、実際には
「【値】から【値】を引いたもの」
「【変数名】から【値】を引く」(「〜を〜だけ減らす」と同じ?)
の2本立てのようです。

ーーーーーーーーーー テストプログラム
値は、5
「値=[値]」と報告する
「5から3を引いたもの=[5から3を引いたもの]」を報告する
「値から3を引いたもの=[値から3を引いたもの]」を報告する
「値=[値]」と報告する
「値から1を引く」と報告。値から1を引く
「値=[値]」と報告する
「5から1を引く」と報告。5から1を引く
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
値=5
5から3を引いたもの=2
値から3を引いたもの=2
値=5
値から1を引く
値=4
5から1を引く
問題が発生しました。
『5から1を引く』という部分で
助詞が一致する「引く」手順が見つかりません。
手順に必要な助詞が書かれていないか、違うオブジェクトを指定しています。

手順の候補:


[エラー番号118] [はじめ:8行目]
ーーーーーーーーーーーーーーーーーーーー

●「増やす」と「減らす」について

https://docs.utopiat.net/rdr/reference/core/math.htm#%E5%A2%97%E3%82%84%E3%81%99
「増やす」「減らす」の説明が不完全なように見えます。「〜だけ」が省略可能であることと、省略時は「1だけ」と指定した時と同じである(らしい)ことが明記されていません。

ーーーーーーーーーー テストプログラム
値は、1
値を報告
値を増やす。「増やす」と報告
値を報告
値を10だけ増やす。「10だけ増やす」と報告
値を報告
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
1
増やす
2
10だけ増やす
12
ーーーーーーーーーーーーーーーーーーーー

(なお、以前は「〜と〜の積」がエラーとなっていましたが、いつの間にか解消していたようです。)

種類手順の上書きと補語省略

投稿者:碁盤鮫 投稿日:2020/09/08(Tue) 04:39:03 No.1998

レシーバ補語を省略した形で種類手順を(種類の外から)呼び出すと、通常は「それ」の値がレシーバとなって問題なく実行されるようですが、その種類手順が「手順の上書き」(いわゆるオーバーライド)をされたものだと、実行すべき手順が決定できなくなるようです。

ーーーーーーーーーー テストプログラム
親種類を作ったものが名乗る
親種類を作る。それが名乗る
親種類を作る。名乗る

親もどき種類を作ったものが名乗る
親もどき種類を作る。それが名乗る
親もどき種類を作る。名乗る

子種類を作ったものが名乗る
子種類を作る。それが名乗る
子種類を作る。名乗る

親種類とは
  自分が、名乗る手順
    「親種類のインスタンスです。」と報告する
  終わり
終わり

親もどき種類とは
  自分が、名乗る手順
    「親もどき種類のインスタンスです。」と報告する
  終わり
終わり

子種類とは
  親種類を継承する
  自分が、名乗る手順
    「子種類がインスタンスにて候。」と報告する
  終わり
終わり
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
親種類のインスタンスです。
親種類のインスタンスです。
親種類のインスタンスです。
親もどき種類のインスタンスです。
親もどき種類のインスタンスです。
親もどき種類のインスタンスです。
子種類がインスタンスにて候。
子種類がインスタンスにて候。
問題が発生しました。
『名乗る』という部分で
「名乗る」という手順が重複しており、どの手順を実行するか決定できません。
引数の助詞や型が正しいか確認してください。

手順の候補:
[親種類]が名乗る
[子種類]が名乗る

[エラー番号117] [はじめ:11行目]
ーーーーーーーーーーーーーーーーーーーー

[追記] レシーバ補語の省略は実補語の省略とは本来違うらしい、という認識はあります。

Re: 未実装機能だったようです

投稿者: 投稿日:2020/09/07(Mon) 09:54:38 No.1997

 お世話になります。

 なるほど、未実装だったんですね。

 利用目的は、下記のような感じです。
 現在ファイルの関連付けが必要なアプリケーションを開発しているのですが、ファイル関連付けの削除も行おうと考えています。
 その際、すでに他のアプリケーションに関連付けられている場合、削除をスキップしようと考えていました。
 ちなみに、ファイルの関連付けや削除自体は、専用のアプリケーションを管理者で実行して行う予定ですので、管理者権限がなくて、うまく実行できないというのは、特に気にしていませんでした。

 以上、よろしくお願いいたします。

▲ページの先頭へ

- WebForum -