Поиск дублей

Материал из UoPilot
Перейти к навигации Перейти к поиску

Описание

Данный скрипт позволяет найти в файле повторяющиеся строки и записать другой файл без повторяющихся строк.

Версия

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

Смотрите также

Load_array
Save_array
If
For

Первоисточник