REM 944BASIC 'iso-2022-jp → SJIS' H=HEXTODEC('1B') KANJI=0 MES='' DIM IN(999) DIM OUT(999) REM ファイル選択する場合は、下のGOTO REM をコメントアウト(先頭にREM)して REM GOTO *SKIP2の先頭のREMを削除 GOTO *SKIP DIM FILE(499) FILESEARCH '*.TXT',FILE CNT=GETREADCNT-1 SORT FILE,0,CNT MENU FILE,CNT,0 FL=STR(FILE(MENUNO)) LOADTEXT FL,IN *SKIP REM GOTO *SKIP2 LOADTEXT 'F0:\__ZAURUS\CLIP0T.SYS',IN CNT=GETREADCNT-1 *SKIP2 REM メインループ FOR J=0 TO CNT REM IF J=0 THEN L=LEN(IN(J)):IN(J)=RIGHT(IN(J),L-8) LOCATE 0,1:PRINT 'PROCESSING LINE:'; JJ=J+1:PRINT JJ TXT=STR(IN(J)) LOCATE 0,2:PRINT TXT LOCATE 7,9 L=LEN(TXT) REM 文字単位で変換ループ FOR I=0 TO L C=MID(TXT,I,1) CH=ASC(C) IFBLK (KANJI=0)*(CH<>H) MES=STRCAT(MES,C) ELSEIF (KANJI)*(CH<>H) KU=CH-32 CC=MID(TXT,I+1,1) CCH=ASC(CC) TEN=CCH-32 I=I+1 IFBLK (KU<=61)*(KU%2) ONE=INT((KU+257)/2) IF TEN<=63 THEN TWO=TEN+63 ELSE TWO=TEN+64 ELSEIF (KU<=62)*(KU%2=0) ONE=INT((KU+257)/2) TWO=TEN+158 ELSEIF (KU>=63)*(KU%2) ONE=INT((KU+385)/2) IF TEN<=63 THEN TWO=TEN+63 ELSE TWO=TEN+64 ELSEIF (KU>=64)*(KU%2=0) ONE=INT((KU+384)/2) TWO=TEN+158 ENDIF ONE=CHR(ONE):TWO=CHR(TWO) CCD=STRCAT(ONE,TWO) MES=STRCAT(MES,CCD) ELSEIF (CH=H) CC=MID(TXT,I+1,2) IFBLK STRCMP(CC,'$B')=0 KANJI=1 ELSEIF STRCMP(CC,'(B')=0 KANJI=0 ENDIF I=I+2 ENDIF NEXT I OUT(J)=STR(MES) MES='' CLS NEXT J REM ファイル名をつけて保存 DIM OUT2(CNT) FOR I=0 TO CNT OUT2(I)=STR(OUT(I)) NEXT I FN='.TXT' LOCATE 2,2:PRINT 'FILENAME? '; INPUT FN,12,3 SAVETEXT FN,OUT2 MESSAGE '終了します'