喫茶XRAYトップページ

[スレッド全体
]

[1429] Re2:ユニコードと私返信 削除
2007/11/2 (金) 13:34:38 honadaiku
マルチバイト文字列 (string型) では、等幅フォントなら、1バイト文字は半角
に、2バイト文字は全角になるので、印字幅の計算が簡単 (Length の値を揃える
と幅も揃うので表組みしやすい)。
しかし、ユニコード (WideString型) では、Length の値は文字数であり、印字
幅とは無関係なので計算が面倒 (頭から一文字づつ順番に幅を調べて全部足して
みないと印字位置・幅が決められない)。
というようなことではないでしょうか。

参考 (Delphi のヘルプから引用)
『1 バイトおよびマルチバイト文字列の場合,Length は文字列によって使用さ
れるバイト数を返します。Unicode (WideString) 文字列の場合は,Length はバ
イト数を 2 で割った値を返します。』

[1430] Re3:ユニコードと私返信 削除
2007/11/2 (金) 18:35:28 Syake
▼ honadaikuさん
> マルチバイト文字列 (string型) では、等幅フォントなら、1バイト文字は半角
> に、2バイト文字は全角になるので、印字幅の計算が簡単 (Length の値を揃える
> と幅も揃うので表組みしやすい)。
> しかし、ユニコード (WideString型) では、Length の値は文字数であり、印字
> 幅とは無関係なので計算が面倒 (頭から一文字づつ順番に幅を調べて全部足して
> みないと印字位置・幅が決められない)。
> というようなことではないでしょうか。


そう言うことですね。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82