Я получаю сообщение об ошибке «Предел индекса вне облигаций», когда пытаюсь скопировать определенные строки по индексу из одного TStringList
в другой.
У меня есть текстовый файл, содержащий строки, отформатированные с помощью вертикальной черты "|" разделитель. Это выглядит так:
В моем целевом файле я хочу скопировать только некоторые элементы из строк, начинающихся с '3M'
, чтобы получить что-то вроде этого (первая строка, например):
3M 2189300002 12.99
3M
is Stringlist.strings[1]
2189300002
is Stringlist.strings[3]
12.99
is Stringlist.strings[6]
Вот мой код:
var
sl,new : tstringlist;
lscount,index : integer;
begin
sl:= TStringList.Create;
sl.LoadFromFile('C:\Folder\test.txt');
new := tstringlist.create;
lscount := lstringlist.Count;
for index := 0 to lscount do
begin
sl.delimiter := '|';
sl.StrictDelimiter := True;
sl.DelimitedText := sl.Strings[index];
if sl.Strings[1] = '3M' then
new.Add(sl.Strings[1]+sl.Strings[3]+sl.Strings[6]);
end;
new.SaveToFile('C:\Folder\new.txt');
sl.Free;
new.Free
end;
Что не так с моим кодом?