随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253

问题来源: http://www.cnblogs.com/del/archive/2008/05/19/1089944.html#1203165

1、# 后面跟一个字符编码可以表示这个字符, 字符编码可以用十进制或十六进制表示;
譬如字符 "A" 的编码是 65(十进制) 或 $41(十六进制).
ANSII 编码表参见: http://www.cnblogs.com/del/archive/2007/12/07/987071.html
var
  c: AnsiChar;
begin
  c := #65;
  ShowMessage(c); {A}
  c := #$41;
  ShowMessage(c); {A}
end;

2、用 # 也可以表示双字节字符, 所有汉字编码参见: http://www.cnblogs.com/del/archive/2007/12/15/996290.html
var
  wc: WideChar;
begin
  wc := #19975;
  ShowMessage(wc); {万}
  wc := #$4E07;
  ShowMessage(wc); {万}

  {双字节兼容单字节}
  wc := #65;
  ShowMessage(wc); {A}
  wc := #$41;
  ShowMessage(wc); {A}
end;

3、多个用 # 表示的字符连接时, 可以省略 + 号.
var
  str: string;
begin
  str := #65 + #66 + #67;
  ShowMessage(str);  {ABC}

  str := #65#66#67;
  ShowMessage(str);  {ABC}

  str := '万一的' + #32 + #68 + #101 + #108 + #112 + #104 + #105 + #32 + '博客';
  ShowMessage(str);  {万一的 Delphi 博客}

  str := '万一的'#32#68#101#108#112#104#105#32'博客';
  ShowMessage(str);  {万一的 Delphi 博客}
end;

另外 System 单元有个常量 sLineBreak, 它用来表示回车换行;

回车是 #13, 换行是 #10, 所以 sLineBreak 的值是 #13#10;

我们在输入提示时显示的是 sLineBreak = #$D#$A, 这不过是换成了十六进制显示.

posted on 2008-05-19 22:43  万一  阅读(...)  评论(...编辑  收藏