我想将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;
}
}
}
答案 0 :(得分:1)
听起来你想要做的就是比较2个文件,并计算它们之间相同的单词。我将尝试回答这个问题(你没有问题,而且那里的信息很难理解)。
您当前发布的代码会比较文字行而非单词。
你应该做的是创建一个方法来返回给定字符串的单词列表(让我们称之为GetWordsFromString())。 然后对于你拥有的每个文件,读入它,调用GetWordsFromString()。然后为您的主列表取出单词,遍历每个单词并查看它是否存在于您的辅助列表中。
答案 1 :(得分:0)
问题有点过于宽泛,有点不清楚,但请看DiffPlex让你开始。