home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 October
/
VPR9710A.ISO
/
Ffilly
/
TFYW111
/
RTW_ARR.MAC
< prev
next >
Wrap
Text File
|
1997-06-05
|
4KB
|
183 lines
//配列操作関連関数
main:
menu
"Array&Size\t配列の要素数を返す",
"DelArray&All\t配列の要素をすべて削除",
"&DelArrayAt...\t配列の要素を一つ削除",
"&InsArrayAt...\t配列の要素を一つ挿入";
if(result == 0) goto macro_cancel;
else if(result == 1) call InsFunc "ArraySize",3;
else if(result == 2) call InsFunc "DelArrayAll",3;
else if(result == 3) goto DelArrayAt;
else if(result == 4) goto InsArrayAt;
macro_end:
endmacro;
macro_cancel:
writeininum "tfywrite.ini", "Control", "MenuCancel", 1;
endmacro;
DelArrayAt:
escape;
call MacSrvInit;
ddepoke "newdialog", "30,DelArrayAt";
ddepoke "newcontrol", "text,,配列名(&A)";
ddepoke "part", "15";
ddepoke "newcontrol", "edit,Array,";
ddepoke "newcontrol", "text,,削除要素位置(&P)";
ddepoke "part", "15";
ddepoke "newcontrol", "edit,Position,";
ddepoke "newcontrol", "text,, ";
ddepoke "part", "10";
ddepoke "newcontrol", "okcancel,Ok";
call MakeDialog;
$Ok = dderequest("getstring Ok");
if($Ok == "0")goto macro_end;
$Array = dderequest("getstring Array");
$Position = dderequest("getstring Position");
$ArrayPer = rightstr($Array,2);
if($ArrayPer != "[]") $Array = $Array + "[]";
$Cmd = "DelArrayAt(" +$Array+ "," +$Position+ ");";
insert $Cmd;
goto macro_end;
ddeexecute "exit";
InsArrayAt:
escape;
call MacSrvInit;
ddepoke "newdialog", "30,InsArrayAt";
ddepoke "newcontrol", "text,,配列名(&A)";
ddepoke "part", "15";
ddepoke "newcontrol", "edit,Array,";
ddepoke "newcontrol", "text,,要素挿入位置(&P)";
ddepoke "part", "15";
ddepoke "newcontrol", "edit,Position,";
ddepoke "newcontrol", "text,,挿入要素(&E)";
ddepoke "part", "15";
ddepoke "newcontrol", "edit,Element,";
ddepoke "newcontrol", "text,, ";
ddepoke "part", "10";
ddepoke "newcontrol", "okcancel,Ok";
call MakeDialog;
$Ok = dderequest("getstring Ok");
if($Ok == "0")goto macro_end;
$Array = dderequest("getstring Array");
$Position = dderequest("getstring Position");
$Element = dderequest("getstring Element");
$ArrayPer = rightstr($Array,2);
if($ArrayPer != "[]") $Array = $Array + "[]";
$Cmd = "InsArrayAt(" +$Array+ "," +$Position+ "," +$Element+ ");";
insert $Cmd;
goto macro_end;
ddeexecute "exit";
//関数の挿入
InsFunc:
//第1引数 str 関数名
//第2引数 str 関数の引数のタイプ
// (0=なし、1=数値型、2=文字列型、3=配列変数)
if(##2 == 0){
escape;
insert $$1 + "();";
return;
}
#Select = selecting;
$SText = "";
if(#Select == 1){
#STopX = seltopx;
#STopY = seltopy;
#SEndX = selendx;
#SEndY = selendy;
$SText = gettext(#STopX,#STopY,#SEndX,#SEndY);
#SLength = strlen($SText);
moveto #STopX,#STopY;
beginsel;
right #SLength;
delete;
}
if(##2 == 1){
insertfix $$1 + "(" + $SText + ");";
if($SText == ""){
gowordend;
right;
}
}
else if(##2 == 2){
insertfix $$1 + "(\"" + $SText + "\");";
if($SText == ""){
gowordend;
right 2;
}
}
else if(##2 == 3){
if(rightstr($SText,2) != "[]") $SText = $SText + "[]";
insertfix $$1 + "(\"" + $SText + "\");";
if($SText == ""){
gowordend;
right;
}
}
return;
//ダイアログボックス関連サブルーチン
MacSrvInit:
run "macserv.exe /h";
ddeinitiate "HideMacroServer", "DlgService";
if( !result ) {
message "ddeinitiate failed";
endmacro;
}
ddeexecute "setcurdir " + directory;
return;
MakeDialog:
#hwnd = hidemaruhandle(0);
ddeexecute "dialog " + str(#hwnd);
$$a = "";
ddestartadvice "dlgresult", $$a;
while( strlen($$a) == 0 ) {
ddewaitadvice $$a, 100;
}
ddestopadvice "dlgresult";
ddeexecute "enddialog";
return $$a;