;;R: (いいかげんにもとの位置にもどる 位置復帰) (alt+8) khori 00/01/09 10:07 ;return.tmc Integer i,j,x,y, hText String S,s2, Func, Title, FName, Temp jump(outkeymac) Exit :OutKeyMac SetStr(Title,'recall.tmc') ;UserGetStr(Title, 'マクロのタイトルを入力してください',0) ;JumpIfFalse(End) SetStr(Temp,Title) GoodFileName(Temp) GetExePath(FName) AddStr2(FName,FName,Temp) ; AddStr(FName,'.tmc') ExistingFile(FName) JumpIfFalse(Open) OpenText(hText, FName, 0) ReadString(hText, S) JumpIfTrue(Macexec) CloseText(htext) Jump(Open) :Macexec CloseText(htext) CallTomMacro(title); OpenText(hText, FName, 3) closeText(htext); exit; :Open OpenText(hText, FName, 3) AddStr2(Title,';;',Title) AddStr(Title,'\n') WriteString(hText,Title); IsTomFile JumpIfFalse(NoTom) WriteString(hText,'\tIsTomFile\n') WriteString(hText,'\tJumpIfTrue(Skip)\n') WriteString(hText,'\tShowMessage(\'テキストモードでは使えません\',0)\n') WriteString(hText,'\tExit\n') WriteString(hText,':Skip\n') :NoTom GetCurLineStr(S); setstr(s2,s); StrLen(i,S); ; CmpInt(I,'>',32); ; JumpIfFalse(le32) ; call(cut32) :le32 AddStr2(Func,'\tFindString(\'',S) addstr(Func,'\',0,0,1) ; 上側検索\n') writestring(htext,Func); writestring(htext,'\tjumpiftrue(atta)\n'); AddStr2(Func,'\tFindString(\'',S) addstr(Func,'\',0,1,1) ; 下側検索\n') writestring(htext,Func); writestring(htext,'\tjumpiftrue(atta)\n'); WriteString(hText,'\tShowMessage(\'記憶した文字列がなくなっています。復帰することはできませんでした。\',0)\n') writestring(htext,':atta\n'); writestring(htext,'CurDown \nCurUp\n'); ;カーソル移動 GetCurPos(x, y) cmpint(x,'=',0) jumpiftrue(end); For(i,0, x) writestring(htext,'\tCurRight\n'); GetCharType(J,S2,i); CmpINT(J,'=',2); jumpiffalse(seijo) inc(i); :seijo EndFor :end writestring(htext,'exit\n'); exit; :cut32 setint(i,32) GetCharType(J,S,32); CmpINT(J,'<>',2); jumpiffalse(good32) dec(i) :good32 StrLeft(S,S,i); return // いいかげん位置復帰マクロ (1)最初にこのマクロを起動すると,現在の位置を覚えます。実際には現在の行の文字列を覚えます。 (2)2回目の起動で,元の位置に戻る努力をします。最初に上を捜し,なければ下を捜します。ただし,同じ文字列のある行があると,そこに復帰してしまいます。(+_+) 注意: (3)一つしか記憶できないので,他の知子さんのところで操作すると,(2)は失敗します。もし同じ文字列があればそこに行きますが,元の知子さんでないのは当然です。 その行と同じ文字列があるような行を記憶しないようにしましょう。 この手のマクロはキー登録していると便利です。 なお,^z を位置復帰に使用することも可能です。文字列入力や削除などのテキスト変更をしなければ^z を繰り返して帰るほうが確実です。