gpt4 book ai didi

string - 如何通过 TMemoryStream 将 Unicode 字符串加载到 TTreeView 中?

转载 作者:行者123 更新时间:2023-12-03 18:43:20 26 4
gpt4 key购买 nike

我需要对 TTreeView 的树的 Unicode 字符串做一些事情,所以我想将此字符串加载到内存流中,然后将内存流加载到 TreeView 中。我怎样才能做到这一点?

最佳答案

您很想直接使用 TStringStream TMemoryStream 的类.但是这个TStringStream在 Unicode Delphi 版本中,类将在存储之前将 UnicodeString 编码为 AnsiString...

所以这里有一些函数来创建 TMemoryStream具有纯 Unicode 内容的实例,然后检索此文本:

function StringToMemoryStream(const Text: string): TMemoryStream;
var Bytes: integer;
begin
if Text='' then
result := nil else
begin
result := TMemoryStream.Create;
Bytes := length(Text)*sizeof(Char);
result.Size := Bytes;
move(pointer(Text)^,result.Memory^,Bytes);
end;
end;

function MemoryStreamToString(MS: TMemoryStream): string;
begin
if MS=nil then
result := '' else
SetString(result,PChar(MS.Memory),MS.Size div sizeof(Char));
end;

请确保您 Free TMemoryStream当你不再需要它时。

通过使用 sizeof(Char)PChar ,此代码也适用于以前的非 Unicode 版本的 Delphi。

关于string - 如何通过 TMemoryStream 将 Unicode 字符串加载到 TTreeView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315025/

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