|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Удаления дубликатов C# |
|
.NET - Удаления дубликатов C#
|
Новый участник Сообщения: 12 |
Добрый день!
имеется скрипт для удаления дублирующих строк в txt файле using System; using System.Collections.Generic; using System.IO; using System.Text; namespace spicemustflow_sortcleaner { class Program { static string GetFilename(string nameWithoutExtension, bool uniq) { int n = 1; string outputFile = string.Empty; while (true) { outputFile = string.Format("{0}_{1}{2}.txt", nameWithoutExtension, uniq ? "uniques" : "duplicates", n > 1 ? n.ToString() : string.Empty); if (File.Exists(outputFile)) n++; else break; } return outputFile; } static void Main(string[] args) { string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\"; string[] filelist = null; if (args.Length == 0) filelist = Directory.GetFiles(path, "*.txt", SearchOption.TopDirectoryOnly); else filelist = args; foreach (string filename in filelist) { Encoding enc = Encoding.Default; using (FileStream fs = File.OpenRead(filename)) { byte[] data = new byte[3]; while (fs.Read(data, 0, data.Length) > 0) if (data[0] == 0xef && data[1] == 0xbb && data[2] == 0xbf) { enc = Encoding.UTF8; break; } else { enc = Encoding.GetEncoding(1251); break; } } Console.Write("loading {0}..\n", filename); string[] input = File.ReadAllLines(filename, enc); if (input.Length > 0) { Console.Write("sorting..\n"); Array.Sort(input); List<string> uniques = new List<string>(); List<string> duplicates = new List<string>(); Console.Write("deleting duplicates..\n"); uniques.Add(input[0]); for (int i = 1; i < input.Length; i++) if (input[i] != input[i - 1]) uniques.Add(input[i]); else duplicates.Add(input[i]); Console.Write("\nsaving..\n"); File.WriteAllLines(path + GetFilename(Path.GetFileNameWithoutExtension(filename), true), uniques.ToArray(), enc); Console.Write("\n\n"); } } } } } Есть два файла .txt Файл1.txt : 11111@mail.ru 11231@mail.ru 1121@mail.ru и т.д. Файл2.txt : 55111@mail.ru 55231@mail.ru 5521@mail.ru 11111@mail.ru и т.д. Так вот нужна, чтобы из первого файла автоматически удалить дубликаты содержащиеся во втором текстовом файле (в данном случае в двух файлах есть строка 11111@mail.ru из первого файла данная строка должна удалится). сколько это будет стоит? |
|
Отправлено: 18:46, 27-11-2013 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Что то я не понял задачи.
Что является признаком "дубликата"? Если строка дублируется в первом файле, нужно такую же удалить во втором? Если строка из первого файла идентична строке из второго файла - удалить строку в первом файле? |
Отправлено: 16:36, 02-12-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Система - Программы для поиска и удаления дубликатов файлов | Alex Cop | Программное обеспечение Windows | 61 | 07-01-2018 12:00 | |
Любой язык - [решено] Поиск дубликатов | Baranius | Скриптовые языки администрирования Windows | 14 | 07-06-2012 12:22 | |
Графика - [addons] Программы для поиска дубликатов изображений | pahan22 | Наборы обновлений для Windows XP/2003/Windows 7 | 7 | 12-04-2011 19:52 | |
CMD/BAT - Удаление дубликатов при копировании | Seryoga204 | Скриптовые языки администрирования Windows | 1 | 22-08-2010 17:01 | |
Разное - CloneSpy - автоматическое/полуавтоматическое удаление дубликатов файлов | ShaRP | Программное обеспечение Windows | 0 | 25-05-2008 19:54 |
|