ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2017年12月14日(木) 17:10

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2008年2月18日(月) 02:24 
オフライン

登録日時: 2008年2月17日(日) 18:55
記事: 18
''''' 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 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[2人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke