gpt4 book ai didi

delphi - 如何通过索引访问 WideString 的字符?

转载 作者:行者123 更新时间:2023-12-03 15:15:19 25 4
gpt4 key购买 nike

我有以下无法编译的代码片段:

procedure Frob(const Grob: WideString);
var
s: WideString;
begin
s :=
Grob[7]+Grob[8]+Grob[5]+Grob[6]+Grob[3]+Grob[4]+Grob[1]+Grob[2];
...
end;

Delphi5 提示类型不兼容

我尝试将其简化为:

s := Grob[7]; 

有效,并且:

s := Grob[7]+Grob[8];

事实并非如此。

我只能假设 WideString[index] 不返回 WideChar

我尝试强制使用WideChars:

s := WideChar(Grob[7])+WideChar(Grob[8]);

但这也失败了:

Incompatible types

脚注

  • 5:德尔福5

最佳答案

根据您的情况,以下代码更容易、更快:

procedure Frob(const Grob: WideString);
var
s: WideString;
begin
SetLength(s,8);
s[1] := Grob[7];
s[2] := Grob[8];
s[3] := Grob[5];
s[4] := Grob[6];
s[5] := Grob[3];
s[6] := Grob[4];
s[7] := Grob[1];
s[8] := Grob[2];
...
end;

使用 WideString(Grob[7])+WideString(Grob[8]) 表达式可以工作(它规避了 Delphi 5 的错误,您无法通过该错误创建 WideString 来自 WideChars 的串联),但速度要慢得多。

创建WideString非常慢:它不使用Delphi内存分配器,而是使用Windows(针对OLE)提供的BSTR内存分配器,这非常慢。

关于delphi - 如何通过索引访问 WideString 的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com