Mono環境でのフォルダ情報について

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:12:28 No.2190

いつもお世話になっております。

Mono環境でフォルダ情報からフォルダ一覧を取得した際、結果の絶対パスや名前に円マークが入るようです。

ーープログラム例
フォルダ情報(「/」)を作ったもののフォルダ一覧(1)の絶対パスを表示 ーー/var\/

ーープログラム例終わり

状況:ファイルやフォルダを扱うタイプのWebアプリを作っている時、複数のフォルダから同じ名前のテキストファイルを順番に読み込んでいく処理があり、Windowsだと動くのにLinuxだと動かなかったため発覚しました。

プロデルバージョン:1.8.1135(Mono)
Monoバージョン:6.12.0.179
OS:Ubuntu 20.04.4 LTS
よろしくお願いいたします。

文定義から改行が消えることがある

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:12:20 No.2189

いつもお世話になっております。

例外監視が含まれる手順からリフレクション機能で文定義を取得すると内容から改行が消えるようです。

ーープログラム例
とある種類から型情報を取得したものから手順一覧を取得(1)の文一覧(1)の内容を報告

とある種類とは
  とある手順
    例外監視
      123を表示
      456を表示
    発生した場合
      123を表示
    監視終わり
  終わり
終わり

ーープログラム例終わり

状況:複数のrdrファイルから、種類名が一定条件を満たす種類だけを抽出して一つのライブラリにするアプリを作っている中で発覚しました。

プロデルバージョン:1.7.1134
よろしくお願いいたします。

文字列の「以降」命令について

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:12:10 No.2188

いつもお世話になっております。

手順の引数について、型の異なる値を入れると自動変換を試みてくれるものだと勝手に思っているのですが、「以降」手順の開始文字位置に文字列を入れると動作しないようです。

ーープログラム例
A=「あいうえお」の「2」文字目以降

ーープログラム例終わり

ーーエラーメッセージ
動詞『以降』に適した手順が見つかりません。
助詞が一致する手順がないか、異なる種類のオブジェクトが指定されています。

手順の候補:
[文字列]の【開始文字位置:整数】文字目の以降

[エラー番号118] [はじめ:1行目]
プロデル 1.7.1134 (64)

ーーエラーメッセージ終わり

状況:URLのクエリ引数に応じて文字列から一部分を取り出すタイプのWebアプリを作っている際に発覚しました。

よろしくお願いいたします。

ツールからのホットキーの登録について

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:11:44 No.2187

いつもお世話になっております。

ツールで、一度解除されたホットキーをタイマーのイベント手順の中から登録することができないようです。
下記プログラムは普通に実行すると「○」が2回連続で表示されますが、
ツールとして(ツールメニューから)実行すると「○」、「×」の順で表示されます。

ーープログラム例
テストキーというホットキー(キー「P」シフトキー[○]コントロールキー[○])を作って登録して表示 ーー○になる
テストキーを解除

タイマー1というタイマー(間隔1000)を作って開始
待機

タイマー1が時間になった時の手順
  テストキーを登録して表示 ーーツールとして実行した場合のみ×になる
  テストキーを解除
  終了
終わり

ーープログラム例終わり

状況:定期的に動作するタイプのツール(https://rdr.utopiat.net/cgi/progbbs/forump.php?mode=viewcode&id=92&rtn=91)を作っていた時に発覚しました。

プロデルバージョン:1.7.1134
よろしくお願いいたします。

リストビューについて

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:11:34 No.2186

いつもお世話になっております。

現象1:リストビューの詳細一覧に、ウィンドウの設計画面から値を追加することができないようです。

ーーエラーメッセージ
型 'System.String[]' にコンストラクターが見つかりませんでした。

ーーエラーメッセージ終わり

状況:プログラムから追加すれば済む話なのですが、設計画面でレイアウトを確認しながら見出し幅などの設定をできたほうが便利かと思いご報告申し上げました。

ーーーーーーーーーー

現象2:リストビューの並び替え手順について、列番号がゼロオリジンになっているようです。

ーープログラム例
メイン画面を表示

メイン画面とは
  ウィンドウを受け継ぐ
  はじめの手順
    リストビュー1というリストビューを作る
    その表示方法=詳細
    その見出し一覧={「内容」}
    その一覧={「あ」,「い」,「う」}
    その1番目を降順に並び替える ーーエラーになるが、0番目にするとエラーにならない
  終わり
終わり

ーープログラム例終わり

ーーエラーメッセージ
プロデル 1.7.1134
'1' の InvalidArgument=Value は 'index' に対して有効ではありません。
パラメーター名:index
場所 System.Windows.Forms.ListViewItem.ListViewSubItemCollection.get_Item(Int32 index)
場所 Produire.WinControl.リストビュー.ListViewItemComparer.Compare(Object x, Object y)
場所 System.Windows.Forms.ListView.CompareFunc(IntPtr lparam1, IntPtr lparam2, IntPtr lparamSort)
場所 System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
場所 System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ListView.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
ーーエラーメッセージ終わり

状況:挙動が混乱の原因になると思いご報告だけさせて頂きましたが、ゼロオリジンであることを覚えていれば困らないのでスルーしていただいても問題ございません。

ーーーーーーーーーー

プロデルバージョン:1.7.1134
よろしくお願いいたします。

匿名手順について

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:11:09 No.2185

いつもお世話になっております。

現象1:匿名手順の中で「。」を使って複数の文を1行で書いていると「内容」設定項目から「。」が消えるようです。

ーープログラム例
[『123を表示。123を表示』]の内容を表示

ーープログラム例終わり

状況:データベースへのアクセスを匿名手順で行えるようにしているのですが(たぶん原理としては配列のカスタムソートと大体同じ)、そのアクセスのログに匿名手順の内容を含めたい状況があり、発覚しました。

ーーーーーーーーーー

現象2:匿名手順は手順の一つだと認識していますが、「エラーを無視する」命令を匿名手順で実行すると匿名手順の外で起こったエラーも無視されるようになるようです。

ーープログラム例

エラーを無視
「エラー1」というエラーを発生させる


「エラー2」というエラーを発生させる ーー無視される

ーープログラム例終わり

状況:この書き方ができたら例外監視より少し短く書けると思ったので試してみたらできませんでした。

ーーーーーーーーーー

プロデルバージョン:1.7.1134
よろしくお願いいたします。

仮想機械メソッドに変数を作れない

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:10:48 No.2184

お世話になっております。

MSIL生成機能のサンプルコードに動作しないものがありましたのでご報告申し上げます。

ページ名:仮想機械メソッド
閲覧日:2022/05/21

ーーエラーメッセージ
「作って値」という手順が複数あり、どの手順を実行するか決められません。
引数の助詞や型が合うように指定してください。

手順の候補:
[仮想機械メソッド]へ【ネット型】である変数を 作る
[仮想機械メソッド]へ【クラス:仮想機械クラス】である変数を 作る
[仮想機械メソッド]へ【型名】である変数を 作る

[エラー番号117] [はじめ:7行目]
プロデル 1.7.1134 (64)

ーーエラーメッセージ終わり

状況:挙動に興味があり調査した過程で発覚した現象です。この機能を使った具体的なアプリの計画はまだないので後回しにして頂いて問題ございません。

よろしくお願いたします。

修正確認しました。

投稿者:onichan <contact あっとまーくonichan.cf> 投稿日:2022/05/22(Sun) 15:10:32 No.2183

お世話になっております。

現象が最新版(1.7.1134、1.8.1135、1.9.1135)で修正されていることを確認いたしました。
ご対応いただきありがとうございます。
今後ともよろしくお願いいたします。

WindowsやPCの仕様だと思われます

投稿者:ゆうと 投稿日:2022/05/22(Sun) 02:41:36 No.2181

お返事ありがとうございます。

> 色を外しても続きました。
色を付ける機能を外しても現象が変わらない、ということであれば、WindowsやPCの仕様です。
プロデルでは対処できないと思われます。

Windowsの「設定」や「コントロールパネル」でPC固有の設定を変えられることもあるので
関連する設定がないか確認してみてください。

> ディスプレイキーボードを表示している時に起こります。
タッチキーボードでも試してみましたが、やはり再現できませんでした。
タッチキーボードには癖があり、またプログラムを書くには操作しづらいですので
設定で対処できない場合は、USBやBluetoothのキーボードを接続して使うことを検討してください。

それでは。

修正しました(1.7.1134)

投稿者:ゆうと 投稿日:2022/05/22(Sun) 02:30:25 No.2180

お返事ありがとうございます。

> 正確な条件はわからないのですが、少なくとも以下の条件を満たした時に配列の要素が整数に置き換わるようです。
> ・配列の前半部分が種類変数または設定項目を参照していること
> ・その種類変数または設定項目の型が明示的に宣言されていないこと

これについては、1番目の要素が解析時点でデータ型が不明の場合に
適切に配列の型を決定できない現象がありました。
1.7/1.8/1.9の最新版で修正済みですのでご確認ください。


> ただ一応プロデルは10年使わせて頂いていて、大抵の不具合は遠回りすれば(またはその部分だけC#で書けば)何とかなるので、

C#と組み合わせてプロデルでアプリ作成に取り組んでいる、ということで、承知しました。
そのような事情ということであれば、頑張って対応します。

頻繁に挙動に関するご報告頂いておりますが、どういった状況で使っているのか(もしくは実際のプログラム)
を簡単で構いませんのでお書き添え頂けると、先回りした対応ができ、仕様検討の参考にもなります。

また、何か不具合と思われる現象が見つかりました際は、その都度投稿して頂ければと思います。
もし小出しにしているようでしたら連投で構いませんので、まとめて投稿お願い致します。

よろしくお願いします。

▲ページの先頭へ

- WebForum -