データを一括してmenu表示No.05848
lotus さん 08/04/11 21:54
 
会議室のみなさま,いつもお世話になっております。lotusです。

データファイルのデータ
[Ronri]
num = 4
str0 = 集合と演算
str1 = 命題と集合
str2 = 必要条件・十分条件
str3 = 命題と証明

[Jyunretsu]
num = 5
str0 = 場合の数
str1 = 順列
str2 = 円順列
str3 = 組合せ
str4 = 二項定理

を一つにまとめてmenu表示したいのですが,可能でしょうか?
一つのデータファイルを2つのマクロで利用する際,一方では,[Romnri]と[Jyunret
su]をばらばらにメニュー表示して,もう一方では
これらのデータを一つにまとめてmenu表示したいのですが,データを一括して取り込
む方法がわからず苦戦しています。宜しくお願いいたします。






[ ]
RE:05848 データを一括してmenu表示No.05850
h-tom さん 08/04/12 11:34
 

h-tom です。

>データファイルのデータ
<省 略>
>を一つにまとめてmenu表示したいのですが,可能でしょうか?
1つの配列にいれて、menuarrayで表示すればいいのでは?
それとも、サブメニューとして表示したいということですか?
多段メニュー(?)はマクロの標準機能では無理ですが、田楽サーバー/dllを
使えば可能ですよ。

>これらのデータを一つにまとめてmenu表示したいのですが,データを一括して取り込
>む方法がわからず苦戦しています。宜しくお願いいたします。
ini形式のファイルから、データを一括して読みたいという事なら、
方法はないです。地道に一つずつ読み込んで下さい。

[ ]
RE:05850 データを一括してmenu表示No.05851
lotus さん 08/04/12 21:49
 

h-tom さん回答ありがとうございます。

最近マクロを作るようになったばかりで,まだぜんぜんわかっていません。言葉足ら
ずで申し訳ございませんでした。

あるマクロで利用しているデータファイルのデータを流用して,複数の配列を一括し
て読み込んで1つのメニューにしたかったのですが,
だめなんですね。今まではh-tomさんがおっしゃるように,一つの配列にまとめ直し
ていたのですが,データ量が多く,データを変更するたびに,まとめなおすのが面倒
だったので,今回質問した次第です。

これからは地道にやります(泣)ありがとうございました。

[ ]
RE:05851 データを一括してmenu表示No.05852
山紫水明 さん 08/04/12 22:42
 
 lotusさん,

>これからは地道にやります(泣)ありがとうございました。

 h-tom さんが「地道に一つずつ読み込んで下さい」といわれているのは,多分
一挙に読み込む方法はないから,マクロで一つ一つ読み込むということだろうと
思います。
 お示しになっているデータの限りでは次のようにしたらどうでしょう。
 もしかしたら,思いっきり外しているのかも知れませんが。

//-------------------------------------------------------------------//
disabledraw;
gofiletop;
while( 1 ) {
    searchdown "(?<!num )= .+$", regular;
    if( !result ) break;
    $str[#i] = gettext( foundtopx + 2, foundtopy, foundendx, foundendy );
    #i = #i + 1;
}
menuarray $str, #i;
endmacro;
//-------------------------------------------------------------------//

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05852 データを一括してmenu表示No.05853
lotus さん 08/04/13 20:50
 
 山紫水明さん,ありがとうございます。一括メニュー表示できました。ただ,マク
ロ初心者なもので,わからない点が2つあります。

1.マクロ中でデータファイル(bunrui.dat)をseachdown するにはどのようにすれ
ばよいのでしょうか。(grep だとファイル指定できるのですが,seachdownの方はマ
クロヘルプに書いてないような気がするのですが・・・。一度bunrui.datファイルを
開かないといけないのでしょうか?)

2.データファイルの中身全体ではなく,その一部の配列をまとめたい場合は,どの
ようにすればよいのでしょうか?

例えば

[Zukeitokeiryou]
num = 5
str0 = 三角比
str1 = 正弦定理
str2 = 余弦定理
str3 = 三角形の面積
str4 = 空間図形

[Ronri]
num = 4
str0 = 集合
str1 = 命題と集合
str2 = 必要十分条件
str3 = 命題と論証

[Kamoku]
num = 6
str0 = 数T
str1 = 数A
str2 = 数U
str3 = 数B
str4 = 数V
str5 = 数C


から,[Zukeitokeiryou]と[Ronri]のみ一括表示する。


お忙しいところ,お手数をかけ大変申し訳ございませんが,宜しくお願いいたします。

p.s.山紫水明様のマクロには,doublegrep や SelectFolderなど大変お世話になって
おります。重ねて御礼申し上げます。







[ ]
RE:05853 データを一括してmenu表示No.05854
山紫水明 さん 08/04/13 22:32
 
 lotusさん,

>1.マクロ中でデータファイル(bunrui.dat)をseachdown するにはどのよう
>にすればよいのでしょうか。(grep だとファイル指定できるのですが,
>seachdownの方はマクロヘルプに書いてないような気がするのですが・・・。一
>度bunrui.datファイルを開かないといけないのでしょうか?)

seachdown は検索系の中にあります。
このマクロはデータファイルを開いた状態で実行します。もしデータファイルを
開くのもマクロにしたいのであれば,
openfile "ファイルのパス";
をマクロの最初に書きます。

>2.データファイルの中身全体ではなく,その一部の配列をまとめたい場合は,
>どのようにすればよいのでしょうか?

 こういうことはマクロですべてやるより,目的のデータファイルを開いて,必
要な部分をコピーして,新規ファイルに貼り付け,前回のマクロを実行するのが
現実的だとは思いますが,あえてすべてマクロでということになると,少し難し
くなります。

//--------------------------------------------------------//
$file = "d:\\abc\\cde\\bunrui.dat";//目的ファイルのパス名
#j = 0;
call Sub, "Zukeitokeiryou";//データの必要な箇所
call Sub, "Ronri";         //同上,同じ要領で追加できます。
menuarray $str, #j;
endmacro;

Sub:
while( 1 ) {
    $str[#j] = getinistr($file, $$1, "str" + str(##i));
    if( $str[#j] == "" ) break;
    ##i = ##i + 1;
    #j = #j + 1;
}
return;
//--------------------------------------------------------//

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05854 データを一括してmenu表示No.05855
lotus さん 08/04/14 02:48
 
山紫水明さ〜ん,おかげさまで自作のマクロの中で配列を一括してメニュー表示でき
るようになりました!

さらに,丁寧な説明までつけていただいて,とても勉強になりました。
なるべく自分で考えようとは思っているのですが,どうしても先に進めなくなったと
きには,ご助言宜しくお願いいたします。

ありがとうございました。

[ ]