![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Код:
begin
s := TStringList.Create;
s.LoadFromFile('love.txt');
for i:=0 to s.Count-1 do
for k:=1 to Length(s.Strings[i]) do
if(s.Strings[i][k] = s.Strings[i][k]) then
begin
s.Delete(i);
end;
s.SaveToFile('love.txt'); |
|
#2
|
||||
|
||||
|
Код:
if(s.Strings[i][k] = s.Strings[i][k]) then Если ты хочешь удалить все строки-дубликаты, то надо как-то так: Код:
for i:=0 to s.Count - 2 do for j:=i+1 to s.Count - 1 do if s.Strings[i]=s.Strings[j] then s.Delete(j); |
|
#3
|
||||
|
||||
|
она компилируется но выдает ошибку "List index out of bounds (4)" при выполнении
|
|
#4
|
|||
|
|||
|
Цитата:
Конечно выдает. Ты удаляешь строчку, т.е. меняешь из кол-вл. А цикл for с превычислимым условием. соответсвенно, после удаления у тебя кол-во строк меньше, чем условие окончания цикла. Соответсвенно, надо делать цикл с конца до начало, т.е. от Count-1 до 0. |
|
#5
|
||||
|
||||
|
А если так сделать?
Код:
s := TStringList.Create;
s.Sorted := True;
s.LoadFromFile('love.txt'); |
|
#6
|
||||
|
||||
|
Страдалецъ благодарю, очень здорого
|
|
#7
|
||||
|
||||
|
он даже в алфавитному порядку выстраивает
P.S. Помогают одни и те же, а репу повысить форум не дает мол надо повысить комуто другому прежде чем вам) |
|
#8
|
|||
|
|||
|
Цитата:
А можно весь код выложить или программу целиком, мне бы такая тоже пригодилась. |