メガソフト トップサポートユーザーフォーラム > テキストエディタ MIFESフォーラム
テキストエディタ MIFESフォーラム

[ フォーラムトップ ] [ 検索 ] [ 過去ログ ]
[ テキストエディタ MIFESシリーズ ][ MIFESサポートトップ ]

Re^5: マイフェス8のマクロコマンドの記述について - 田中徹 2012/10/30(Tue) 21:27
> MIL/Wのマクロを書いた経験がなく、単純にキーボードマクロのマクロソースをそのままMIL/Wマクロに適用できると思っていました。

たいていのことはできますが万能ではないようです。


> ご指摘の、「(1) のファイルを (3) に変更しているが (1) のデータが増えたとき、もう一回この操作を行おうとしてもそのままではできない」ということは、No.2799のソースの0016番目はMIL/Wマクロには適用できないということですね。

そうではなくて、in と out のファイルが同じだと
例えば索引に用いたい単語が増えたとき整形し直す必要が出てくるということです。

やっていただきたいこと

file(1) を in.txt
file(2) を doc.txt
新規空テキストファイルを out.txt として 3つのテキストファイルを準備する。

次のマクロをコンパイルしてライブラリ登録する
Test という名前で登録されるはずです。

いったん mifes を終了して
in.txt doc.txt out.txt の順で起動する。
マクロ Test を実行すると out.txt にお望みの形で出力されるはずです。

/* search の引数はご自分で工夫なさってください */

; 以下 マクロソース
*Test
jump(0,"in.txt")
@num=1
while @code!=0xffff
move("(")
@selmode=0
@selmode=3
search(2,0x0004,"\t")
@1=getselstring(@str1)
move("r")
@selmode=3
search(2,0x0004,"\t")
@2=getselstring(@str2)
move("r")
@selmode=3
move(")")
@3=getselstring(@str3)
@selmode=0
move("d")
jump(1,"doc.txt")
@5=search(4,0,@str2)
if @5==0
strcpy(@str4,"????")
else
move("(")
@selmode=3
search(2,0x0004,";")
@4=getselstring(@str4)
@selmode=0
endif
;
jump(2,"out.txt")
move("(")
printf("%s\t%s\t%s\t%s\n",@str1,@str4,@str2,@str3)
;
jump(0,"in.txt")
wend


- 関連一覧ツリー をクリックするとツリー全体を一括表示します)