マクロで連続置換がうまくいきませんNo.09429
KURO さん 01/08/12 09:54
 
以下のマクロを実行すると最後の「IN」の置換しか実行されていません。
対策を教えてください。
#numkey = 25;
$keyw[0] = "CREATE";
$keyw[1] = "OR";
$keyw[2] = "REPLACE";
$keyw[3] = "PACKAGE";
$keyw[4] = "BODY";
$keyw[5] = "IS";
$keyw[6] = "CURSOR";
$keyw[7] = "TYPE";
$keyw[8] = "SELECT";
$keyw[9] = "FROM";
$keyw[10] = "WHERE";
$keyw[11] = "AND";
$keyw[12] = "ORDER";
$keyw[13] = "BY";
$keyw[14] = "ROWTYPE";
$keyw[15] = "FUNCTION";
$keyw[16] = "NUMBER";
$keyw[17] = "RETURN";
$keyw[18] = "BOOLEAN";
$keyw[19] = "FOR";
$keyw[20] = "BEGIN";
$keyw[21] = "END";
$keyw[22] = "LOOP";
$keyw[23] = "THEN";
$keyw[24] = "IF";
$keyw[25] = "IN";

#i = 0;
while(#i <= #numkey){
replaceall $keyw[#numkey] , $keyw[#numkey] , word;
#i = #i + 1;
}

[ ]
RE:09429 マクロで連続置換がうまくいきまNo.09430
EMiCC さん 01/08/12 11:09
 
何を何に変換したいのかわかりませんが、
>while(#i <= #numkey){
>replaceall $keyw[#numkey] , $keyw[#numkey] , word;
>#i = #i + 1;
>}
ということは
replaceall $keyw[25] , $keyw[25] , word;
を26回繰り返しているだけなので当然では?

[ ]
RE:09429 マクロで連続置換がうまくいきまNo.09431
ひろ さん 01/08/12 13:16
 
 KURO さん今日は、ひろです。
> 以下のマクロを実行すると最後の「IN」の置換しか実行されていません。
> 対策を教えてください。
<中略>
> replaceall $keyw[#numkey] , $keyw[#numkey] , word;
は、
replaceall $keyw[#i] , $keyw[#i] , word;
とすれば良いのではありませんか?

[ ]