如何在Delphi中将一个StringList拆分为两个字符串列表?

时间:2012-02-09 13:30:47

标签: delphi listbox split

我正在尝试将StringList内容拆分为多个部分(在Delphi中)...
听起来很简单,但我被愚蠢地阻止了:o

例如,StringList包含1001行,我想将内容拆分为2个StringLists。因此,一个将有500行,另一个将有501行 无论第一个是501还是第二个500,反之亦然。

如果有人能以正确的方式推动我...... 提前谢谢!

贝尼

2 个答案:

答案 0 :(得分:5)

你可以这样做:

for I := SL1.Count - 1 downto (SL1.Count div 2) do
begin
  SL2.Insert(0, SL1[I]);
  SL1.Delete(I);
end;

答案 1 :(得分:3)

你可以很容易地手动完成:

var
  i: Integer;
  MidIndex, HighIndex: Integer;
begin
  MidIndex := SLOne.Count div 2;   // Center of first list's items
  HighIndex := SLOne.Count - 1;    // End of  first list

  // Copy from center to end of first list, keeping order
  // of items intact
  for i := MidIndex to HighIndex do
    SLTwo.Append(SLOne[i]);

  // Go back and remove the ones you just put into the second
  // list. Go backward to prevent going past the end.
  for i := HighIndex downto MidIndex  do
    SLOne.Delete(i);
end;