Android97
@Android97
Бэкенд и немного фронтенд разработчик

"Прыгает" порядок строк при удалении дубликатов, в чем проблема?

var i,j:integer;
begin
j:=0;
i:=8;
while i<memo1.Lines.Count-8 do
begin
while j<memo1.Lines.Count do
begin
if (memo1.Lines.Strings[i+2]=memo1.Lines.Strings[j+2]) AND (memo1.Lines.Strings[i+3]=memo1.Lines.Strings[j+3]) then
begin
ShowMessage(memo1.Lines.Strings[j]+#13+memo1.Lines.Strings[j+1]+#13+memo1.Lines.Strings[j+2]);
memo1.Lines.Strings[j]:='';
memo1.Lines.Strings[j+1]:='';
memo1.Lines.Strings[j+2]:='';
memo1.Lines.Strings[j+3]:='';
memo1.Lines.Strings[j+4]:='';
memo1.Lines.Strings[j+5]:='';
memo1.Lines.Strings[j+6]:='';
memo1.Lines.Strings[j+7]:='';
end;
j:=j+8;
end;
i:=i+8;
end;

Вот пример текста
-----------------------------------------------
Отметьте номер правильного варианта ответа:
 СОГЛАСНО «ПОВЕСТИ ВРЕМЕННЫХ ЛЕТ», КНЯЗЕЙ РЮРИКА, СИНЕУСА И ТРУВОРА ПРИЗВАЛИ НА КНЯЖЕНИЕ ПЛЕМЕНА
 | 1  | «Жалованная грамота городам»
 | 2  | «Табель о рангах»
 | 3  | «Указ о секуляризации церковных земель»
 | 4  | «Указ о единонаследии»
-----------------------------------------------
-----------------------------------------------
Установите правильную последовательность:
 ХРОНОЛОГИЧЕСКАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ИСТОРИЧЕСКИХ СОБЫТИЙ
 | 1  | «Азовское сидение» донских казаков
 | 2  | Семилетняя война
 | 3  | Третий раздел Польши
 | 4  | Северная война
-----------------------------------------------
-----------------------------------------------
Установите правильную последовательность:
 ХРОНОЛОГИЧЕСКАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ИСТОРИЧЕСКИХ СОБЫТИЙ
 | 1  | Восстание древлян
 | 2  | Поход Олега на Киев, объединение Новгорода и Киева
 | 3  | Начало княжения в Киеве Владимира
 | 4  | Крещение Руси
-----------------------------------------------
-----------------------------------------------
Установите правильную последовательность:
 ХРОНОЛОГИЧЕСКАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ИСТОРИЧЕСКИХ СОБЫТИЙ
 | 1  | Введение нового летосчисления
 | 2  | Основание Санкт-Петербурга
 | 3  | Учреждение Кунсткамеры
 | 4  | Учреждение Академии наук
-----------------------------------------------
-----------------------------------------------
Установите правильную последовательность:
 ХРОНОЛОГИЧЕСКАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ИСТОРИЧЕСКИХ СОБЫТИЙ
 | 1  | Экспедиция Ермака в Западную Сибирь
 | 2  | Куликовская битва
 | 3  | Подписание русским митрополитом Исидором Флорентийской унии
 | 4  | Начало Ливонской войны
-----------------------------------------------


При выполнении, он начинает удалять не то, что нужно, в итоге из секции от ----- до ----- остается пару пунктов и все.
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 2
@xneo
В чём суть задачи?
Ответ написан
Комментировать
@localghost
Вы имеете в виду, что этот код удаляет часть вариантов ответа?
Это мне пока трудно объяснить. Пока программа, как мне кажется, делает следующее: "забьем пустыми строками второй вопрос и все, совпадающие с ним по 3-й и 4-й (?!) строке".
То есть, у вас
а) перепутаны присваивания в самом начале;
б) инициализация переменной внутреннего цикла должна быть внутри внешнего цикла;
в) сравнение идет по 3-й и 4-й строке - это точно так задумано?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы