Delphi 错误不兼容类型Tstringlist和Tarray
我不理解这个错误:Delphi 错误不兼容类型Tstringlist和Tarray,delphi,Delphi,我不理解这个错误: function StrSplit(input: string): TArray<string>; var delimiterSet: array [0 .. 0] of char; begin delimiterSet[0] := '&'; // some character result := input.Split(delimiterSet); end; 错误类型Tstringlist和Tarray不兼容。根据您的评论,问题代码是调
function StrSplit(input: string): TArray<string>;
var
delimiterSet: array [0 .. 0] of char;
begin
delimiterSet[0] := '&'; // some character
result := input.Split(delimiterSet);
end;
错误类型Tstringlist和Tarray不兼容。根据您的评论,问题代码是调用代码。你写道:
lst := StrSplit(...);
其中,lst
是一个TStringList
。这不会编译,因为编译器告诉你了。数组不能分配给TStringList
而是使用AddStrings
方法:
lst.AddStrings(StrSplit(...));
不管它值多少钱,都不需要StrSplit函数。你可以写
lst.AddStrings(richedit1.Text.Split(['&']));
我怀疑他们试图将这个函数的结果赋给一个TStringList变量;lst:=StrSplit(richedit1.Text);PS遗漏了上面正确的注释,转到字符串列表:-)使用
lst.AddStrings(StrSplit(re.Text))代码>相反。我建议您编辑问题以提供MCVE。您不能将字符串数组直接分配给字符串列表。不同的类型。DelimitedText
在stringlist中使用分隔符“&”也可以使用。可以使用lst.AddStrings(richedit1.Text.Split(['&'));是否与多个分隔符一起使用?是。只需将它们添加到开放数组构造函数中即可。太棒了……thanx gazillion……花了我3h。FWIW这都是有文档记录的。你找到文件了吗?
lst.AddStrings(richedit1.Text.Split(['&']));