Re^3: 静的メソッドの呼び出しではインスタンスは不要です

投稿者:通り道 投稿日:2019/12/26(Thu) 22:23:14 No.2547

プロデル側のプログラムを見る限り、イメージ型が登場してないように見えるのですが・・・

ファイル文字列=「test.jpg」
→ファイル文字列は、文字列型

画像テストは、画像(ファイル文字列)を作ったもの
→画像テストは、画像型

画像テストの本体を報告する
→画像型に対して、本体という名前のフィールドを参照しようとしている
 これは、エラーメッセージに書かれている通り

Re^2: 静的メソッドの呼び出しではインスタンスは不要です

投稿者:schutzen 投稿日:2019/12/26(Thu) 18:09:39 No.2546

こんにちは。その後、Image型のプロパティ項目を編集するプラグインを作っています。

先日、アップしていただいた記事「プロデルプラグインの作り方」を参考に、Image型のラッパー種類を生成するプラグインをC#で次のように書いて、
------------------------
  public class イメージ型 : ClassWarpper<Image>
  {
    public Image 本体
    {
      get { return baseObject; }
    }
  }
-----------------------

プロデルのこんなコードで試してみたところ
-----------------------
「ImageWrap.dll」を利用する
ファイル文字列=「test.jpg」
画像テストは、画像(ファイル文字列)を作ったもの
画像テストの本体を報告する
-----------------------

エラーとなりました。
-----------------------
『画像テストの本体』という部分で
画像型には「本体」という設定項目または手順がありません。

[エラー番号302] [はじめ:8行目]
プロデル 1.6.989 (32)
----------------------
プラグインの書き方で何か間違いがあるのでしょうか。それとも、画像ファイルを開く処理はプラグイン側に持たせた方がよいのでしょうか。よろしくご教示ください。

Re^2: メニュー項目の一括追加

投稿者: 投稿日:2019/12/15(Sun) 16:32:38 No.2545

 こんにちは。

 260文字を超えるファイル名はともかく、メニュー項目は確かに多いと選択するのが大変ですよね。
 今はクリップボードの履歴をとるツールを作っているんですが、最大1000件くらいまで増える可能性があるので、グループ化はした方がいいかもしれません。
 まあ、それは追加がなんとかなってから考えたいと思います。
 そもそも、C#に速度を求めるのは、間違っている気もしないでもないですが。

 それでは。

Re: メニュー項目の一括追加

投稿者:アーク <info.nds.laboratry あっとまーくgmail.com> 投稿日:2019/12/15(Sun) 15:14:38 No.2544

こんにちは。アークです。

回答では無いですが…。
260文字を超えるパス名とか、500を超えるメニュー項目とか凄い状況ですね。
例えそれが可能になったとしても表示や選択が大変そうです。
もしグループ分けなどが可能ならば多段階メニューを検討されては如何でしょうか。

メニュー項目の一括追加

投稿者: 投稿日:2019/12/14(Sat) 18:02:37 No.2543

 お世話になります。

 コンテキストメニューに大量の項目を追加しようとしていますが、表示されるまでにかなり時間がかかってしまい、少し困っています。
 メニューを1回作って、それを使い回しできればいいんですが、項目が増減するため、それができないのが現状です。
 実際に試していないので、どれくらい変わるかわからないんですが、C#ではAddRangeで複数項目を一括追加できるようで、これを使えば多少早くなるようです。
 プロデルにもこの機能を追加していただくことは難しいでしょうか。
 もし可能でしたら、検討いただけると幸いです。
 一応、かなり抜粋していますが、現状のソースを載せておきます。

----- ソースコード -----
ーーとりあえず、テスト用に項目名を列挙した配列を作る
追加項目一覧は、{}
回数を1から1ずつ増やしながら500まで繰り返す
「テスト[回数]」を追加項目一覧へ加える
繰り返し終わり
追加項目個数は、追加項目一覧の個数
値を1から1ずつ増やしながら追加項目個数まで繰り返す
メニュー表示名は、追加項目一覧([値])
メニュー項目名は、「item_[値]」
「[メニュー項目名]というメニュー項目をメニュー1へ追加する」をプロデる
その内容をメニュー表示名に変える
そのクリックされた時の手順は、ダイアログ表示
繰り返し終わり

メニュー1を表示する

ダイアログ表示の手順
もし発生元が無なら、手順から抜ける
発生元の名前を表示する
終わり
--------------------

 環境はWindows10 64ビット、プロデル 1.6.985です。

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

Re^2: 多次元配列を複数のキーで並び替えするには

投稿者: 投稿日:2019/12/09(Mon) 18:46:07 No.2542

 こんにちは。

 提示いただいたコードでやりたいことができました。
 ありがとうございました。

 それでは。

Re: 「フォルダ情報」種類を使います

投稿者:smorkin 投稿日:2019/12/07(Sat) 13:32:26 No.2541

こんにちは、smorkin です。

ゆうと 様、ご回答ありがとうございます。

> -------------------
> パスは、フォルダ情報(「[デスクトップ]」)を作る
> フォルダ一覧は、パスから「*.*」を列挙する
> フォルダ一覧のすべての要素についてそれぞれ繰り返す
>   要素の名前&「 」&要素のサイズを報告する
> 繰り返し終わり
> -------------------

上記のプログラム例、確認いたしました。

> 「ファイル情報」種類と「フォルダ情報」種類は、比較的最近追加した種類ですので
> ややこしいですが、プログラムを参考にして下さい。

以前よりも少し複雑ですが、覚えていきます。
ありがとうございました。

Re: 多次元配列を複数のキーで並び替えするには

投稿者:アーク <info.nds.laboratry あっとまーくgmail.com> 投稿日:2019/12/07(Sat) 11:41:26 No.2540

こんにちは。アークです。

こういう事でしょうか。
-----------------------------------------------------------------------------------
配列は、{
{「A」, 「テスト1」, 20},
{「B」, 「テスト2」, 21},
{「A」, 「テスト3」, 22},
{「B」, 「テスト4」, 23},
}
配列を『
それを{左,右}とみなす
もし左(1)<右(1)なら
-10を返す。
他でもし左(1)>右(1)なら
10を返す。
そうでなければ
  もし左(3)<右(3)なら
  -1を返す。
  他でもし左(3)>右(3)なら
  1を返す。
  そうでなければ
  0を返す
  もし終わり
もし終わり
』で並び替える
配列を改行で繋げて表示する

多次元配列を複数のキーで並び替えするには

投稿者: 投稿日:2019/12/07(Sat) 10:30:05 No.2539

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

 多次元配列を匿名手順で並び替えようとしています。
 この際、複数のキーで並び替えをするには、どうしたらよいのでしょうか。
 とりあえず、サンプルソースです。

----- サンプルソース -----
ーーテスト用の配列を作成。
ーー今回は、4×3の配列を作成しているが、実際に扱おうとしている配列は、もう少し要素が多い。
配列は、{
{「A」, 「テスト1」, 20},
{「B」, 「テスト2」, 21},
{「A」, 「テスト3」, 22},
{「B」, 「テスト4」, 23},
}
配列を『
それを{左,右}とみなす
もし左(1)<右(1)なら
-1を返す。
他でもし左(1)>右(1)なら
1を返す。
そうでなければ
0を返す
もし終わり
』で並び替える
配列を改行で繋げて表示する
--------------------

 このソースコードを実行すると、単純に下記の結果が得られます。

----- 実際の実行結果 -----
{A,テスト3,22}
{A,テスト1,20}
{B,テスト4,23}
{B,テスト2,21}
--------------------

 ただ、今回は2番目の要素でも並び替えを行いたく、下記のような実行結果にしたいと考えています。

----- 想定される実行結果 -----
{A,テスト1,20}
{A,テスト3,22}
{B,テスト2,21}
{B,テスト4,23}
--------------------

 このような順番に並び替えるには、並び替えの手順をどのように書けばいいんでしょうか。
 単純に1番目の要素で並び替えを行ったあと、2番目の要素で並び替えを行うだけではうまくいかず、最初に宣言したときと同じような並び順になってしまいます。
 何かよい方法があれば、アドバイスをいただけると幸いです。

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

Re: 260文字を超えるパスの対応について

投稿者:アーク <info.nds.laboratry あっとまーくgmail.com> 投稿日:2019/12/07(Sat) 10:26:56 No.2538

こんにちは。アークです。

御承知の様にポリシーを変更する事で260文字の制限を解除する事はできます。
しかし、現状ではウィンドウズ標準のソフトでさえ全て対応している訳では無いようです。
また、解除したところでフォルダの最大長248文字と、
それを含めたファイル名の最大長が260文字というのは一部に残っているので、
そこから先はフォルダを作る事ができません。
…なので今は可能であれば使わない方が良いようです。

但し何としても取得したいという事であればできなくも有りません。
例えば「dir」コマンドは対応していますので、
その結果から必要な内容を取り出す事で可能です。
データ量の違いは有りますがスクレイピング&マイニングの手法です。
例によってあまりスマートな方法では有りませんが機能します。

▲ページの先頭へ

- WebForum -