Помогите с сравнением двух списков



  • Здравствуйте, помогите пожалуйста реализовать такой скриптик... Сколько чего перепробовал ничего не получается...((
    Задача такова:
    Есть два файла №1 и №2
    Нужно сделать чтобы проверяло с файла №1 на текст который повторяется в файле №2 и соответственно удаляла текст с файла №2 который есть в файле №1....
    Как то так....
    Ломаю голову и ничего не получается :(
    Помогите пожалуйста...



  • @pro100sata
    Читаете оба файла в отдельные переменные. Далее используем экшн Заменить строку
    0_1547801806713_fc0d8fcc-b3b5-414d-80ab-2718e01d241f-image.png
    Записываете полученные данные обратно в файл.



  • @xclsv alt text

    Сделал так... все равно не проверяет слова которые есть в файле №1 и не заменяет текст в файле №2...



  • @pro100sata

    1. Зачем нужны действия Установить переменную ? У вас уже сохранены данные из файлов в двух предыдущих действиях. Оперируйте полученными переменными в действии Заменить строку
    2. Последнее действие пишет список в файл. У вас в структуре списка не видно. Пишите в файл данные полученные по выполнению действия Заменить строку


  • @xclsv Я вас правильно понял? alt text



  • @pro100sata
    Да. Должно работать.

    Благословляю на запуск скрипта. Пока в режиме записи =)



  • @xclsv Не работает....

    Вот файл №1 alt text

    Вот файл №2 alt text

    Вот файл в который получаю результат alt text

    Не заменяет....



  • @pro100sata
    Нужно, чтобы каждую из строк файла1 искал и удалял?



  • @xclsv Да, к примеру, файл №1
    имеет:
    "тест1
    тест2
    тест3
    тест4"

    файл №2 имеет текст который повторяется в файле №1
    "тест1
    тест3
    тест6
    тест7
    тест5"

    Нужно чтобы после проверки если текст из файла №2 повторяются с файлом №1 то тот текст удаляло

    На выходе должно получится:
    "тест6
    тест7
    тест5"



  • @pro100sata, подскажите, как это можно было понять из текста поставленной задачи?

    1. Выгружаем оба файла в отдельные списки.
    2. В цикле Foreach проверяем наличие каждого элемента первого списка во втором списке с помощью действия Содержит.
    3. Если действие из п.2 отдает true, то удаляем элемент из второго списка по значению.
      0_1547806450449_adc50537-86dd-44aa-9620-6dedfb704d6a-image.png
    4. Пишем список обратно через Записать список в файл

    Есть альтернативный вариант без проверки наличия элемента первого списка во втором списке:

    1. Выгружаем оба файла в отдельные списки.
    2. В цикле Foreach удаляем элемент первого списка из второго списка по значению(действие Удалить по значению).
    3. Пишем список обратно через Записать список в файл
      Чуть неправильно, но телодвижений и операций меньше.


  • @xclsv Вот хз... что не так... сделал как Вы описали выше по двум примерам.... не хочет оно работать :(





  • @xclsv Получилось сделать вот таким образом alt text
    alt text

    Спасибо большое за помощь. Очень помогли!



  • @pro100sata
    Успехов!



  • Возникла задача чуть сложнее. Есть два списка. Один список имеет такой вид:

    Need this apartment CytSG7-WQAAq_hK.jpg
    This русские и английские буквы Bo1qX9XIYAA8uh6.jpg
    This is awesome! BbQM1LrIUAAMPbb.jpg
    I love the back deck BiPlvyMIAAEJYse.jpg
    Beautiful текст BXyidbZIgAA-fz4.jpg
    Paradise тект2 BolI8fFIgAA6dNL.jpg
    Wow текст3 BqYJys7IMAAu5qE.jpg
    

    Второй список такой:

    BbQM1LrIUAAMPbb.jpg
    BqYJys7IMAAu5qE.jpg
    BcDP8ZHIIAAe-fb.jpg
    Cs5JL1hWIAAUS4e.jpg
    BqXgrHUIYAEu5KV.jpg
    BiPlvyMIAAEJYse.jpg
    BgufkCNIEAAomey.jpg
    CwHIgcMWAAA2iUt.jpg
    BeT5BlvIMAE--Fh.jpg
    BhP3No-IcAAoLqp.jpg
    Bf1vPv3IcAA7us3.jpg
    

    Нужно сравнить и в первом списке удалить всю строку, если есть совпадение со строкой из второго списка. То есть в строках не полное совпадение, а частичное. Но при совпадении нужно удалять всю строку.

    В разделе "Список" есть функция "Содержит", в этой функции в поле "Содержит" должно быть полное совпадение? Можно ли туда регулярное выражение вписывать?

    Или как в моем случае лучше поступить?

    0_1555704098273_BASCompare.rar



  • @servasw45 Извините, я не @xclsv мне сейчас делать нечего вот такой вам говнокод решается одним "кубиком" и цикл forEach и for присутствуют.
    0_1555756302655_compare-2-lists-2.xml



  • @tts9 Спасибо!
    Я тут тоже что-то написал с вложенными циклами один внутри другого.
    0_1555761524603_compare-2-lists-3.xml
    Но у вас гораздо компактнее выглядит :)


Log in to reply
 

  • 9
  • 5
  • 1
  • 6
  • 3
  • 21
  • 10
  • 38