お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"SJIS <-> JIS 変換 簡易編"

この発言に対し以下のコメントが寄せられています
#00505 瑠瓏 さん RE:SJIS <-> JIS 変換 簡易編

この例は、入力がSJISとかJISだとわかっている場合の変換です。 function JisToSjis( Jis: Word ): Word; var Ser: Word; Sj1: Byte; Sj2: Byte; begin Ser := (Trunc(Jis / 256) - $21) * 94 + (Jis mod 256) - $21; Sj1 := Trunc(Ser / (63 + 125)); if (Sj1 < 31) then begin Result := (Sj1 + $81) * 256; end else begin Result := (Sj1 + $81 + $40) * 256; end; Sj2 := Ser mod (63 + 125); if (Sj2 < 63) then begin Result := Result + Sj2 + $40; end else begin Result := Result + Sj2 + $40 + 1; end; end; function SjisToJis( Sjis: Word ): Word; var Ser: Word; Sj1: Byte; Sj2: Byte; begin Sj1 := Trunc(Sjis / 256); if (Sj1 < $A0) then begin Ser := (Sj1 - $81) * (63 + 125); end else begin Ser := (Sj1 - $81 - $40) * (63 + 125); end; Sj2 := Sjis mod 256; if (SJ2 < $80) then begin Ser := Ser + Sj2 - $40; end else begin Ser := Ser + Sj2 - $40 - 1; end; Result := (Trunc(Ser / 94) + $21) * 256 + (Ser mod 94) + $21; end; EUC(UJISとかJEUCとかいうらしい)では JIS + $8080、区・点では JIS - $2020 でよかったと思いますが、よくわかりません。あと、新JIS、旧JISなどの 違いは、FJAMES というフォーラムにありましたが、最近行ってないのでわかり ません。アセンブラで書かれた例もありました。 アイクビー Original document by アイクビー 氏 ID:(KHB01350)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum