сравнение двух текстовых файлов в приложении Windows - PullRequest
0 голосов
/ 29 марта 2012

У меня есть два текстовых поля, в которых пользователь вводит свой путь к текстовым файлам для сравнения. Когда они вводят путь, я делаю следующее, чтобы получить все содержимое каждого файла, читая построчно и, наконец, сохраняя их в строках. Пока это работает, но мне нужно взять первые 10 символов из файла2 и посмотреть, существуют ли эти 10 символов в файле1, если существует, затем увеличить счетчик, в противном случае перейти к следующим 10 символам из файла2 и сравнить их в файле1. Это должно продолжаться до конца файла2.

 private void btnCompare_Click(object sender, EventArgs e)
        {
            string FilePath1 = txtFile1.Text;
            string FilePath2 = txtFile2.Text;
            string CompleteStringToCompare = "";
            string CompleteStringToCompareWith = "";
            int counter = 0;



            //Read First file
            if (!File.Exists(FilePath1))
            {
                Console.WriteLine("{0} does not exist.", FilePath1);
                return;
            }
            using (StreamReader sr1 = File.OpenText(FilePath1))
            {
                string input1;
                while ((input1 = sr1.ReadLine()) != null)
                {
                    CompleteStringToCompare += input1;
                }
            }

            //Read Second file
            if (!File.Exists(FilePath2))
            {
                Console.WriteLine("{0} does not exist.", FilePath2);
                return;
            }
            using (StreamReader sr2 = File.OpenText(FilePath2))
            {

                string input2;
                while ((input2 = sr2.ReadLine()) != null)
                {
                    CompleteStringToCompareWith += input2; 
                }

            }

Не берите в голову, я написал остальную часть кода, что мне нужно. Вот оно:

            int length = int.Parse(txtNumberOfChar.Text);  //Which is 10 in my case
            int j = 1;
            string temp = "";
            if (CompleteStringToCompareWith != "")
            {
                int totalSubStrings = CompleteStringToCompareWith.Length / length;
                for (int i = 1; i <= totalSubStrings; i++)
                {
                    if (i == totalSubStrings)
                        temp = CompleteStringToCompareWith.Substring(j, CompleteStringToCompareWith.Length - j);
                    else
                        temp = CompleteStringToCompareWith.Substring(j, length);

                    if (CompleteStringToCompare.Contains(temp))
                        counter++;
                    j = j + length;
                }

                lblMessage.Text = "Total Matches "+ counter;
            }

1 Ответ

1 голос
/ 06 апреля 2012
int length = int.Parse(txtNumberOfChar.Text);  //Which is 10 in my case
            int j = 1;
            string temp = "";
            if (CompleteStringToCompareWith != "")
            {
                int totalSubStrings = CompleteStringToCompareWith.Length / length;
                for (int i = 1; i <= totalSubStrings; i++)
                {
                    if (i == totalSubStrings)
                        temp = CompleteStringToCompareWith.Substring(j, CompleteStringToCompareWith.Length - j);
                    else
                        temp = CompleteStringToCompareWith.Substring(j, length);

                    if (CompleteStringToCompare.Contains(temp))
                        counter++;
                    j = j + length;
                }

                lblMessage.Text = "Total Matches "+ counter;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...