Сравнение двух файлов и отображение, какая строка отличается - PullRequest
1 голос
/ 22 апреля 2020

В настоящее время у меня есть проект, в котором 6 файлов считаны в программу, и при вводе данных пользователем будет отображаться, являются ли эти два файла одинаковыми или разными. Тем не менее, я хотел бы создать систему, которая не только сообщает мне, отличаются ли эти файлы, но и в каких строках они отличаются. Надеюсь, кто-то пытался создать что-то подобное?

class FileCompare : UserInput
    {
        static string InputFileA;
        static string InputFileB;

        public static void RepoCompare()
        {
            Console.WriteLine("File 1: File 1A.txt");
            Console.WriteLine("File 2: File 1B.txt");
            Console.WriteLine("File 3: File 2A.txt");
            Console.WriteLine("File 4: File 2B.txt");
            Console.WriteLine("File 5: File 3A.txt");
            Console.WriteLine("File 6: File 3B.txt");

            string Ans = "";

            for (int i = 0; i < 2; i++)
            {
                Console.WriteLine($" Which files would you like to compare? (Please make this the exact pathway!): ");
                Ans = Console.ReadLine();
                if (i == 0)
                    InputFileA = getData(Ans);
                else if (i == 1)
                    InputFileB = getData(Ans);
            }

            if (InputFileA == InputFileB)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine($"File A and File B are the same");

            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"File A and File B are different \n Difference on Line: ");

            }
            Console.WriteLine();

Приведенный выше код показывает, как при вводе данных пользователем он будет сравнивать два файла.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 22 апреля 2020

Я согласен с замечанием, что подобные инструменты уже есть.

Тем не менее, давайте подумаем, что оно само по себе полезное упражнение, а не практический инструмент.

Во-первых, что вы подразумеваете под тем же. Строка 1 в файле A и строка 1 в файле 2 должны быть одинаковыми? Достаточно просто - прочитайте оба файла построчно и сравните каждую строку. Готово.

Но действительно ли вы этого хотите? Что делать, если файлы:

File A

1: A
2: B
3: C

и

File B

1: 
2: A
3: B
4: C

Что теперь? Используя предыдущий метод, они разные в каждой строке! Но действительно ли они? Так что здесь вы должны принять во внимание контекст. Взять строку из первого файла. Ищите его во втором файле. Убедитесь, что начиная с этого момента, у вас есть похожие линии, следующие за соответствующей парой Если не совпадает. Повторите процесс с первой несоответствующей строкой - возможно, это где-то еще во втором файле.

Поскольку мы рассматриваем это упражнение, я оставлю детали реализации автору вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...