掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphi2009 のコードページについて (ID:34707)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DEKO様、了解しました。 一応これで解決とさせて頂きます。 ありがとうございました。 以下は検証途中のものでしたが、折角ですので追加させて頂きます。 ================================================================ StringRefCount の動作を追いかけようと、ライブラリパスに "C:\Program Files\CodeGear\RAD Studio\6.0\source\Win32\rtl\sys" を追加してコンパイルすると… [DCC 致命的エラー] Variants.pas(1071): F2092 ユニットまたはプログラム 'Variants' が自分自身を参照しています 循環参照? 良く分かりませんが StringRefCount 自体は関係ないような気もします。 以下、StringRefCount を参考にして作ってみました。 procedure TForm1.Button1Click(Sender: TObject); var sjis: SJISString; jis: JISString; RefCount: integer; function GetBytes(const S: RawByteString): string; var p, Counter, Count: Longint; CodePage, Size: Word; i: integer; begin p := Longint(S); if p <> 0 then begin CodePage :=PWord(p - 12)^; // コードページ Size := PWord(p - 10)^; // 要素サイズ Counter := PLongint(p - 8)^; // 参照カウンタ Count := PLongint(p - 4)^; // 要素数 ShowMessage(Format('CodePage=%d Size=%d Counter=%d Count=%d', [CodePage, Size, Counter, Count])); Result := ''; for i := 0 to Size * Count - 1 do if Result = '' then Result := IntToHex(PByte(p + i)^, 1) else Result := Result + ':' + IntToHex(PByte(p + i)^, 1); end; end; begin sjis := Edit1.Text; jis := sjis; ShowMessage(GetBytes(jis)); end; 面白いですね。 問題とはあまり関係ないですが。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.