Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Удаления дубликатов C#

Ответить
Настройки темы
.NET - Удаления дубликатов C#

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
имеется скрипт для удаления дублирующих строк в 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Что то я не понял задачи.
Что является признаком "дубликата"?
Если строка дублируется в первом файле, нужно такую же удалить во втором?
Если строка из первого файла идентична строке из второго файла - удалить строку в первом файле?

Отправлено: 16:36, 02-12-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Удаления дубликатов C#

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Программы для поиска и удаления дубликатов файлов 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




 
Переход