Как разбить один StringList на два списка строк в Delphi? - PullRequest
2 голосов
/ 09 февраля 2012

Я пытаюсь разбить содержимое StringList на несколько частей (в Delphi) ...
Звучит просто, но я тупо заблокирован: o

Например, StringList содержит 1001 строку, и я хотел бы разделить содержимое на 2 StringList. Итак, у одной будет 500 строк, а у другой будет 501 строка.
Неважно, если у первого есть 501, а у второго 500, или наоборот.

Если кто-то может подтолкнуть меня на правильный путь ...
Заранее спасибо!

Beny

Ответы [ 2 ]

5 голосов
/ 09 февраля 2012

Вы можете сделать что-то вроде этого:

for I := SL1.Count - 1 downto (SL1.Count div 2) do
begin
  SL2.Insert(0, SL1[I]);
  SL1.Delete(I);
end;
3 голосов
/ 09 февраля 2012

Вы можете сделать это вручную довольно легко:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...