比较文件与其他14个文件

时间:2011-11-18 14:21:59

标签: c#

我想将file1与另外14个文件进行比较。我想要的是读取file1并从14个文件中读取其他文件然后找到两个文件之间的匹配(单词)数量 计算每个另外14个文件的单词数(每次一个)

我尝试过以下代码:

        static void Main()
        {
            StreamReader objReader = new StreamReader(@"c:\basic_source.txt");
            string filepath = "";
            ArrayList arrText = new ArrayList();
            while (filepath != null)
            {
                filepath = objReader.ReadLine();
                if (filepath != null)
                    arrText.Add(filepath);

            }
            objReader.Close();

            //string path;
            //path = filepath;
            // Read the file and display it line by line.
            int found;
            int count = 0;
           string [] cc;
            int basic_source_attr_no = 20;
            float simi_degree;
            string textData = File.ReadAllText(@"C:\expermentaldata\s3\attributes.txt");
            int cnt = (WordCounting.CountWords1(textData));
            string[] content = File.ReadAllLines(@"C:\expermentaldata\s3\attributes.txt");
            //int cnt = content.Count();



            string[] mastercontent = File.ReadAllLines(@"C:\basic_source.txt");

            foreach (string con in content)
            {

                if (mastercontent.Contains(con))
                {
                    found = 1;
                    count = count + found;

                }


            }

            simi_degree = (basic_source_attr_no + cnt) / count;

            try
            {

                simi_degree = (basic_source_attr_no + cnt) / count;

            }
            finally
            {
                Console.WriteLine(" ");
            }
            Console.WriteLine("external attribute no      similar attributes    simi_degree      ");
            Console.WriteLine("---------------------------------------------------------------");

            Console.WriteLine("  {0}                             {1}                {2}        ", cnt, count, simi_degree);

            Console.ReadLine();

        }

    }

    public static class WordCounting
    {
        /// <summary>
        /// Count words with Regex.
        /// </summary>
        public static int CountWords1(string s)
        {
            MatchCollection collection = Regex.Matches(s, @"[\S]+");
            return collection.Count;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

听起来你想要做的就是比较2个文件,并计算它们之间相同的单词。我将尝试回答这个问题(你没有问题,而且那里的信息很难理解)。

您当前发布的代码会比较文字行而非单词。

你应该做的是创建一个方法来返回给定字符串的单词列表(让我们称之为GetWordsFromString())。 然后对于你拥有的每个文件,读入它,调用GetWordsFromString()。然后为您的主列表取出单词,遍历每个单词并查看它是否存在于您的辅助列表中。

答案 1 :(得分:0)

问题有点过于宽泛,有点不清楚,但请看DiffPlex让你开始。