Помогите с решением логики.

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Доброго времени всем!

Идея такая:

Два текстовых файла 1 и 2.
После парсинга, файл 1 наполняется для однократного использования, является временным и в конце данные очищаются.

Но прежде чем очистить я делаю копию данных в файл 2. Данные долгосрочные.

Вопрос, как реализовать логику сравнения двух файлов на дубликаты данных?
И если дубликат есть, то работать со строкой, если нет то не работать.

Помогите реализовать.
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Очень хочу почитать что по ссылке, но что то не могу )). Поправьте линк плиззззз!
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 881
Баллы
113
Он рабочий, просто у Вас нет прав туда заглядывать. (Не обратил внимания сразу).

Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["listSearchTextContains"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
            return "yes";
    }
}
// если ничего не нашли возвращаем "no"
return "no";
 
  • Спасибо
Реакции: Sapfire65

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Я новичок в программе уж извините за назойливость. Этот код прописывать в If ??
И где в коде название текстовых файлов которые нужно сравнивать?
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Если можно, в картинках покажите. А то мне трудно ориентироваться. Этот код пишется целиком или отдельными элементами?

// берем из переменной текст, который надо искать
// получаем список, в котором будем искать
// ищем в каждой строчке в списке
// читаем строку из списка
// проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
// если ничего не нашли возвращаем "no"

Это просто комментарии к коду или указатели на дополнительные действия перед кодом?
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
  • Спасибо
Реакции: Sapfire65

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
upload_2016-6-25_16-33-47.png
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Вот спасибище за разъяснения. Но я уже воспользовался вашим решением (Сравнение списков.
Используем только ту строку, которой нет в другом списке.) Но обязательно протестирую и этот метод!
 

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18

Sapfire65

Client
Регистрация
05.06.2016
Сообщения
103
Благодарностей
22
Баллы
18
Получилось так:

  1. // берем из переменной текст, который надо искать
  2. var textContains = project.Variables["listSearchTextContains"].Value;
  3. // получаем список, в котором будем искать
  4. var sourceList = project.Lists["SourceList"];
  5. // ищем в каждой строчке в списке
  6. lock(SyncObjects.ListSyncer)
  7. {
  8. for(int i=0; i < sourceList.Count; i++)
  9. {
  10. // читаем строку из списка
  11. var str = sourceList;
    [*] // проверяем содержание текста в строке, если есть совпадение возвращаем "1"
    [*] if (str.Contains(textContains))
    [*] return "1";
    [*] }
    [*]}
    [*]// если ничего не нашли возвращаем "0"
    [*]return "0";


Патом использовал логику >0


Все работает.
 

Вложения

  • Спасибо
Реакции: rostonix

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)