【问题标题】:chr equivalent for Unicode in Delphi 7Delphi 7中Unicode的chr等价物
【发布时间】:2013-02-18 08:58:46
【问题描述】:

我需要在 Delphi 7 中初始化一个 Widestring,但我不能使用chr ANSI 函数

var
  ws : Widestring;
begin

 ws := chr($FFFF) + chr($FFFF) + chr($FFFF);

end;

那我可以用什么?

谢谢

【问题讨论】:

  • 我这里没有 Delphi 编译器,但你不能在字符串中使用类似#$... 的字符常量吗?顺便说一句,U+FFFF 在 Unicode 中是非法字符;永远不要使用它。

标签: delphi delphi-7


【解决方案1】:

我不确定是否有一种简单的方法可以按照您的意愿行事。您可以通过简单的转换将Word 转换为WideChar

WideChar($FFFF)

但您不能连接WideChar。所以这是一个编译器错误:

WideChar($FFFF) + WideChar($FFFF)

您可以使用辅助函数来完成工作:

function InitialiseWideString(const chars: array of Word): WideString;
var
  i: Integer;
begin
  SetLength(Result, Length(chars));
  for i := 0 to high(chars) do
    Result[i+1] := WideChar(chars[i]);
end;

那么你可以这样称呼它:

ws := InitialiseWideString([$0054, $0069, $006D, $0065, $0020, $0074, $006F, 
  $0020, $0075, $0070, $0067, $0072, $0061, $0064, $0065]);

【讨论】:

  • 找到彩蛋:“升级时间”:-)。
  • @tz。啊,很高兴知道这不是一无所有!
  • 不错,将其添加到公司核心库中;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 2011-02-05
  • 2010-10-03
  • 2019-03-09
  • 2019-05-30
  • 1970-01-01
相关资源
最近更新 更多