LZ能不能说明下具体的比较方式呢?是按行比较还是其他的方式呢?下面给你按行读取文本的代码,读出后放大string型的数组内:
///
///用于按照预先约定的要求读取文档数据
///
/// 输入参数文件路径
///
public static string[][] rowReadFile(string filepath)
{
//通过使用FileStream打开一个文本流,可以进行更精细的文件打开控制。
FileStream fs = File.Open(filepath, FileMode.OpenOrCreate);
//从流中构造StreamReader类实例
StreamReader sr = new StreamReader(fs, Encoding.Default);
string[] res= new string[100];//100可以自己改掉,也可以传进去
int i = 0;
while (!sr.EndOfStream)
{
string temp = sr.ReadLine().ToString();
res[i] = temp;
i++;
}
sr.Close();
return res;
}
剩下的事情就是遍历数组,比较是否有重复的行。
先全部读取出来,分别放到两个集合(a,b)里面,循环比对,将相同的行存放到另外一个集合(c)里
如果c里面有内容则有重复,如果没有则没有重复
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace findsame
{
class Program
{
static void Main(string[] args)
{
try
{
find(Console.ReadLine());
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadKey();
}
}
public static void find(string path)
{
List
ls.Sort();
for (int i = 0; i < ls.Count-1; i++)
{
if (ls[i] == ls[i + 1])
{
ls.RemoveAt(i + 1);
}
}
print(ls);
write(path, ls);
}
public static List
{
List
FileStream fs = new FileStream(path, FileMode .Open);
StreamReader sr=new StreamReader (fs);
while (!sr.EndOfStream)
{
ls.Add(sr.ReadLine());
}
sr.Close();
fs.Close();
return ls;
}
public static List
{
FileStream fs = new FileStream(path, FileMode.Open,FileAccess .ReadWrite );
StreamWriter sr = new StreamWriter(fs);
for (int i = 0; i < ls.Count; i++)
{
sr.WriteLine (ls[i]);
}
sr.Close();
fs.Close();
return ls;
}
public static void print(List
{
for (int i = 0; i < ls.Count; i++)
{
Console.WriteLine(ls[i]);
}
}
}
}
ctrl+F