如何在delphi 7中的单个语句中添加StringList中的不同字符串?

Cyp*_*rUS 1 delphi

我想在stringList中添加30个不同的字符串.我不想加AList.Items.Add30次.我也不想将字符串保存在数组中并运行循环.我想可能是我可以写一个单独的AList.Add(不是循环),其中要添加的字符串由分隔符分隔.例如 AList.Add('Data1' + <Delim> + 'Data2' ...)

怎么做 ?请注意,我只是好奇是否可以这样做.如果不是因为有更好的方法来实现这一点,那就没关系了.(将字符串保存在数组中并使用循环添加数据是我的想法)

提前致谢

And*_*and 11

您可以编写一个执行此操作的过程:

procedure SLAddStrings(SL: TStrings; S: array of string);
var
  i: Integer;
begin
  SL.BeginUpdate;
  for i := low(S) to high(S) do
    SL.Add(S[i]);
  SL.EndUpdate;
end;
Run Code Online (Sandbox Code Playgroud)

试试吧:

var
  SL: TStringList;
begin
  SL := TStringList.Create;
  SLAddStrings(SL, ['car', 'cat', 'dog']);
Run Code Online (Sandbox Code Playgroud)


Rem*_*eau 7

创建一个临时文件TStringList,将字符串分配给其DelimitedText属性,将临时文件传递给AddStrings()目标方法TStringList,然后释放临时文件.

var
  Temp: TStringList;
begin
  Temp := TStringList.Create;
  try
    Temp.Delimiter := <Delim>;
    // if using a Delphi version that has StrictDelimiter available:
    // Temp.StrictDelimiter := True;
    Temp.DelimitedText := 'Data1' + <Delim> + 'Data2' ...;
    AList.AddStrings(Temp);
  finally
    Temp.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)


Lin*_*nas 6

只是使用DelimitedText财产.例如,如果您的分隔符设置为,(默认在TStringList中),那么您可以编写以下代码:

AList.DelimitedText := 'Data1,Data2';
Run Code Online (Sandbox Code Playgroud)

  • @AndreasRejbrand:AList.DelimitedText:= AList.DelimitedText +',Data1,Data2'); (2认同)