<#CU> /************************************************************************/ /* V1 処理対象(M,P,B) */ /* V2 対象の文字列(元文字) */ /* V3 変換文字列(新文字列) */ /* V11 処理対象のバインダー名 */ /* V21 処理区分(逐次処理[I],一括処理[A]) */ /* V22 処理(スキップ[S],変換処理[R],修正[W],一括処理[A]) */ /* V30 ACCEPT文の受け皿(Y/N) */ /* X1 処理対象(V1)の頁番号 */ /* X2 処理対象の行番号 */ /* X3 処理対象の列番号 */ /************************************************************************/ $処理対象:ACCEPT /P "処理対象は (画面[M],バインダーの1頁[P],バインダー[B])",V1; IF ERR(0)=55 THEN GOTO $END; IF V1="" THEN LET V1="M"; IF INSTR(1,"MmPpBb",V1)=0 THEN GOTO $処理範囲; LET V1=FORM$(V1,1); GOTO $%V1A; $MA: GOTO $表形式; $PA: G;?; GOTO $表形式; $BA: ACCEPT /P "処理対象のバインダーは?",V11; IF ERR(0)=55 THEN GOTO $END; IF V11="" THEN GOTO $BA; IF NAME(3,V11)=0 THEN GOTO $BA; G;%V11/1; $表形式: IF STATUS(1,1)=0 THEN GOTO $ERR1; $元文字: ACCEPT "変換対象の文字列は?",V2; IF ERR(0)=55 THEN GOTO $END; IF V2="" THEN GOTO $元文字; $新文字: ACCEPT "新しい文字列は?",V3; IF ERR(0)=55 THEN GOTO $END; $対象列: ACCEPT /C "対象の列は?",X3; IF ERR(0)=55 THEN GOTO $END; IF X3<1 | X3>C THEN GOTO $対象列; $処理区: ACCEPT "逐次処理[I],一括処理[A]?",V21; IF ERR(0)=55 THEN GOTO $END; IF V21="" THEN LET V21="I"; IF LEN(V21)<>1 THEN GOTO $処理区; IF INSTR(1,"IiAa",V21)=0 THEN GOTO $処理区; LET V21=FORM$(V21,1); GOTO $%V1B; $MB: GOSUB #CU実行; GOTO $END; $PB: GOSUB #CU実行; COL;D; P;*; GOTO $END; $BB: FOR X1=1 TO BINDER(V11); G;%V11/%X1; GOSUB #CU実行; COL;D; P;%V11/%X1; NEXT; $END: COL;D; STOP; $ERR1: BELL;MESSAGE "指定の処理対象は表形式ではありません",COLOR(R); GOTO $処理対象; <#CU実行> $EXE: FOR X2=H TO T; IF [X2,X3]<>V2 THEN CONTINUE; IF V21="A" THEN GOTO $#4; $#1: IF X2<18 THEN GOTO $#3; $#2: R;%(X2-12); $#3: COL;O;W;%X2;%X3; $処理: ACCEPT "スキップ[S],変換処理[R],修正[W],一括処理[A]",V22; IF ERR(0)=55 THEN GOTO $処理; IF V22="" THEN LET V22="S"; IF LEN(V22)<>1 THEN GOTO $処理; IF INSTR(1,"SsRrWwAa",V22)=0 THEN GOTO $処理; LET V22=FORM$(V22,1); IF V22="S" THEN GOTO $#5; IF V22="R" THEN GOTO $#4; IF V22="W" THEN GOTO $修正; IF V22="A" THEN GOTO $一括; $一括: LET V21="A"; COL;W;%X2;%X3; $#4: LET [X2,X3]=V3; IF V21="A" THEN GOTO $#6; $#5: COL;W;%X2;%X3; $#6: CLEAR V30; CONTINUE; $修正: COL;W;%X2;%X3; W;%X2;%X3;ENTRY;ESC; NEXT; RETURN;