ab.com コミュニティ https://www.activebasic.com/forum/ |
|
EUC・SJIS変換 https://www.activebasic.com/forum/viewtopic.php?t=2315 |
ページ 1 / 1 |
作成者: | まっ [ 2008年2月18日(月) 02:24 ] |
記事の件名: | EUC・SJIS変換 |
''''' EucJis EUC・SJIS変換 Function ZEUCJIS(ZSTR as string) as string Dim ZLEN as long , ZCNT as long , ZCHR as string , ZEUC as long , ZHLF as long , ZMOD as long ZEUCJIS="" : ZLEN=Len(ZSTR) For ZCNT=1 to ZLEN : ZCHR=ZSTRMID(ZSTR,ZCNT,1) : ZEUC=Asc(ZCHR) Do : If ZEUC=142 then Exit Do else If ZEUC<161 then ZEUCJIS=ZEUCJIS+Chr$(ZEUC) : Exit Do else ZHLF=Int(ZEUC/2) : ZMOD=ZEUC-(ZHLF*2) : If ZEUC<=222 then ZEUCJIS=ZEUCJIS+Chr$(ZEUC-ZHLF+48) else ZEUCJIS=ZEUCJIS+Chr$(ZEUC-ZHLF+112) ZCNT=ZCNT+1 : ZCHR=ZSTRMID(ZSTR,ZCNT,1) : ZEUC=Asc(ZCHR) : If ZMOD=0 then ZEUCJIS=ZEUCJIS+Chr$(ZEUC-2) : Exit Do else If ZEUC<=223 then ZEUCJIS=ZEUCJIS+Chr$(ZEUC-97) : Exit Do else ZEUCJIS=ZEUCJIS+Chr$(ZEUC-96) Exit Do : Loop Next ZCNT End Function 戻値 ZEUCJIS 引数 ZSTR の EUCの文字部分だけSJISに変換します。 EUC文字が無い場合は 戻値ZEUCJIS は 引数ZSTR と同等となります。 まぁ、詳しくはわかんないけど、Yahooとか、EUC文字を使用するホームページからのページ内容を読みたいときとか、日本語部分を(標準)テキストに変換したい場合に使えます。 引数 ZSTR - 初心者でござる。型使用や浅いルーチン使用は勘弁くだされ。 EUCに該当するSJISが重複するコードが存在するようですが、考えた末に無視する事にしました。判別の基準を決められない事と、処理分岐の複雑化に見合わない理由です。通常利用では支障は無いかと。。。と思います。 ''''' StringMiddle 文字列・中・任意範囲 Function ZSTRMID(ZSTR as string, ZPNT as long, ZLEN as long) as string ZSTRMID="" : If ZSTR="" or ZPNT<1 or ZLEN<1 then Exit Function Dim ZSSS as long , ZLLL as long ZSSS=Len(ZSTR) : If ZSSS<ZPNT then Exit Function ZLLL=ZSSS-ZPNT+1 : If ZLLL>ZLEN then ZLLL=ZLEN ZSTRMID=ZeroString(ZLLL) : memcpy(StrPtr(ZSTRMID),StrPtr(ZSTR)+ZPNT-1,ZLLL) End Function |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |