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

Поддержка
  • @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
    Но у вас гораздо компактнее выглядит :)

  • 0 Votes
    11 Posts
    1747 Views
  • 0 Votes
    12 Posts
    3320 Views
  • 0 Votes
    44 Posts
    14186 Views
  • 0 Votes
    38 Posts
    14340 Views