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

时间:2012-04-25 14:04:05

标签: delphi

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

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

先谢谢

4 个答案:

答案 0 :(得分: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;

试一试:

var
  SL: TStringList;
begin
  SL := TStringList.Create;
  SLAddStrings(SL, ['car', 'cat', 'dog']);

答案 1 :(得分:7)

创建一个临时TStringList,将字符串分配给其DelimitedText属性,将临时值传递给目标AddStrings()的{​​{1}}方法,然后释放临时值。

TStringList

答案 2 :(得分:6)

只需使用DelimitedText属性即可。例如。如果你的分隔符设置为,(TStringList中的默认值),那么你可以编写这段代码:

AList.DelimitedText := 'Data1,Data2';

答案 3 :(得分:1)

您可以使用TStringList.DelimitedText属性添加文字,使用您的Delimiter字符。 TStringList将拆分文本,然后您可以使用strings属性分别访问每个字符串;

program Project3;
{$APPTYPE CONSOLE}
uses classes;

const DATA = 'one,two,three';

var sl : TStringList;
    s : string;
begin
    sl := TStringList.Create();
    try
        sl.Delimiter := ',';
        sl.DelimitedText := DATA;
        for s in sl do begin
            writeln(s);
        end;
        readln;
    finally
        sl.Free();
    end;
end.

,结果是

one
two
three