Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
668
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. **name@mail.ru**
  2. imay@gmail.com
  3. asdas@gmail.com
  4. **name123@mail.ru**
  5.  
  6. Host@mail.ru
  7. imay@gmail.com
  8. **name@mail.ru**
  9. mesdm@gmail.com
  10.  
  11. grgrg@mail.ru
  12. **name123@mail.ru**
  13. asfe@gmail.com
  14. cvdd@gmail.com
  15.  
  16. var lines = File.ReadAllLines("путь к первому файлу").Distinct();
  17. File.Copy(@"C:\директория 1-го файла.тхт", @"C:тхт, в который нужно сохранить измененный файл 1.тхт", true);
  18. GC.Collect(); //типа сборщик мусора..
  19.  
  20. string firstFilePath = "..."; // Путь к "первому" файлу
  21. string outFilePath = "..."; // Путь к выходному файлу с уникальными строками
  22. string baseDirPath = "..."; // Путь к папке "База"
  23. string baseFilesPattern = "..."; // Шаблон файлов в папке "База"
  24. // Заносим все строки из "первого" файла в HashSet
  25. var set = new HashSet<string>(File.ReadLines(firstFilePath));
  26. // Итератор по всем строкам из "Базы",
  27. // обратите внимание - он "ленивый" и будет загружать в память только
  28. // по одной строке за раз, материализовать его не нужно(!)
  29. // и использовать именно File.ReadLines() (!), а не File.ReadAllLines()
  30. var baseStrings = Directory.EnumerateFiles(baseDirPath, baseFilesPattern)
  31. .SelectMany(file => File.ReadLines(file));
  32. // Перебираем все строки и удаляем совпадения из HashSet
  33. foreach (var s in baseStrings) set.Remove(s);
  34. // Сохраняем строки
  35. File.WriteAllLines(outFilePath, set);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement