Поиск дублей
Перейти к навигации
Перейти к поиску
Содержание
Описание
Данный скрипт позволяет найти в файле повторяющиеся строки и записать другой файл без повторяющихся строк.
Версия
1.0
Минимальная версия UOPilot
2.38
Скрипт
// %input - исходный массив.
// %output - итоговый массив.
// #i - счетчик строк исходного массива.
// #n - счетчик строк итогового массива.
// #sizeInput - размер исходного массива.
// #sizeOutput - размер итогового массива.
set #sizeInput size (%input )
set #sizeOutput 0
for #i 1 #sizeInput 1 // Перебираем исходный массив.
set #duplicat 0 // Обнуляем состояние флага, что строка является дубликатом.
for #n 1 #sizeOutput 1 // Перебираем итоговый массив.
if %input[#i] = %output[#n] // Сравниваем есть ли уже такие значение в итоговом массиве.
set #duplicat 1 // Если есть, то ставим флаг дубля.
break // прерываем перебор итогового массива.
end_if
end_for
if #duplicat = 0 // Проверяем чем закончился поиск дубля.
set #sizeOutput #sizeOutput + 1 // Увеличиваем размер итогового массива.
set %output[#sizeOutput ] %input[#i] // Если значение не является дублем, то дописываем его.
end_if
end_for
end_script
Пример
load_array %Input C:\papka\file.txt // загрузить массив из файла 'C:\papka\file.txt'
set #sizeInput size (%input )
set #sizeOutput 0
for #i 1 #sizeInput 1 // Перебираем исходный массив.
set #duplicat 0 // Обнуляем состояние флага, что строка является дубликатом.
for #n 1 #sizeOutput 1 // Перебираем итоговый массив.
if %input[#i] = %output[#n] // Сравниваем есть ли уже такие значение в итоговом массиве.
set #duplicat 1 // Если есть, то ставим флаг дубля.
break // прерываем перебор итогового массива.
end_if
end_for
if #duplicat = 0 // Проверяем чем закончился поиск дубля.
set #sizeOutput #sizeOutput + 1 // Увеличиваем размер итогового массива.
set %output[#sizeOutput ] %input[#i] // Если значение не является дублем, то дописываем его.
end_if
end_for
save_array %Output C:\papka\file789.txt // сохранить итоговый массив в файл 'C:\papka\file789.txt'
end_script