Очистка файла по ключам

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 279
Благодарностей
96
Баллы
48
Добрый день, нагуглил такой код
Код:
//проверяем существование файла search_list
if (File.Exists(project.Variables["search_list"].Value))
    project.SendInfoToLog("Файл " + new FileInfo(project.Variables["search_list"].Value).Name + " существует");
else
    throw new Exception("Файла " + new FileInfo(project.Variables["search_list"].Value).Name + " не существует");
//создаём список и грузим содержимое файла
List<string> search_list = new List<string>(File.ReadAllLines(project.Variables["search_list"].Value));

//проверяем существование файла stop_list
if (File.Exists(project.Variables["stop_list"].Value))
    project.SendInfoToLog("Файл " + new FileInfo(project.Variables["stop_list"].Value).Name + " существует");
else
    throw new Exception("Файла " + new FileInfo(project.Variables["stop_list"].Value).Name + " не существует");
//создаём список и грузим содержимое файла
List<string> stop_list = new List<string>(File.ReadAllLines(project.Variables["stop_list"].Value));

//проверяем на стоп слова и удаляем их если они присутсвуют
foreach(string stp_word in stop_list)
    search_list.RemoveAll(item => item.Contains(stp_word));

//записываем результат в файл
File.WriteAllLines(project.Directory + @"\rezult.txt", search_list);
Он должен очищать строки файла 1 которые содержат строки из файла 2, т.е. просто удаление строк по стоп словам
Если небольшое количество строк то все работает.
А вот попробовал 8к строк в файле 1 и 16к строк в файле 2 и в итоге получается пустота, хотя 100% что должно что-то остаться
Помогите, как быть с этой проблемой?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
.
C#:
var pathFile1 = project.Variables["search_list"].Value;
var pathFile2 = project.Variables["stop_list"].Value;

//проверяем существование файла search_list
if (File.Exists(pathFile1))
    project.SendInfoToLog("Файл " + new FileInfo(pathFile1).Name + " существует");
else
    throw new Exception("Файла " + new FileInfo(pathFile1).Name + " не существует");

//проверяем существование файла stop_list
if (File.Exists(pathFile2))
    project.SendInfoToLog("Файл " + new FileInfo(pathFile2).Name + " существует");
else
    throw new Exception("Файла " + new FileInfo(pathFile2).Name + " не существует");

var search_list = File.ReadAllLines(pathFile1).ToList();
var stop_list = File.ReadAllLines(pathFile2);

foreach (string stp_word in stop_list)
{
    search_list.RemoveAll(item => item.Contains(stp_word));
}

FileSystem.FileAppendString(project.Directory + "\\rezult.txt", string.Join("\r\n", search_list), true);
//return search_list.Count;
 
  • Спасибо
Реакции: Porosenok и evgen_po

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 279
Благодарностей
96
Баллы
48
Все равно пустой rezult.txt :(
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Все равно пустой rezult.txt :(
у себя ошибки ищи, у меня всё норм работает

P.S. вообще если сравнивать по ключам по такому методу через Contains у тебя может на 3-ем ключе весь список очистить

например
список1, строки
aaaaa
aaaaaasssss
aaaaaaaaaagggggggg

стоп слово "aa"
удалит все записи где присутствует aa
 

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