高手请进。在 C#里 一个TXT文档,里面有N行,如何判断内容重复。

2024-12-15 09:43:35
推荐回答(4个)
回答1:

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;
}
剩下的事情就是遍历数组,比较是否有重复的行。

回答2:

先全部读取出来,分别放到两个集合(a,b)里面,循环比对,将相同的行存放到另外一个集合(c)里
如果c里面有内容则有重复,如果没有则没有重复

回答3:

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 = read(path);
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 read(string path)
{
List ls = new 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 write(string path,List ls)
{
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 ls)
{
for (int i = 0; i < ls.Count; i++)
{
Console.WriteLine(ls[i]);
}
}
}
}

回答4:

ctrl+F