C#实现删除txt文本重复行 要源代码啊!用C#实现txt文本内容删除重复行
答案:2 悬赏:20 手机版
解决时间 2021-03-03 17:12
- 提问者网友:蓝莓格格巫
- 2021-03-03 11:02
C#实现删除txt文本重复行 要源代码啊!用C#实现txt文本内容删除重复行
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-03-03 12:28
///
/// 程序入口
///
/// 参数
public static void Main(string[] args)
{
try
{
string path = @"c:\test.txt";
ReadInfoFromFile(path);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
private static void ReadInfoFromFile(string filePath)
{
if (File.Exists(filePath))
{
List list = new List();
// 打开文件时 一定要注意编码 也许你的那个文件并不是GBK编码的
using (StreamReader sr = new StreamReader(filePath, Encoding.GetEncoding("GBK")))
{
while (!sr.EndOfStream) //读到结尾退出
{
string temp = sr.ReadLine();
if (!list.Contains(temp)) //去除重复的行
{
list.Add(temp);
}
}
}
//写回去,第二个参数 Append = false ,就是说覆盖原来的
using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("GBK")))
{
foreach (string line in list)
{
sw.WriteLine(line);
}
}
}
}
/// 程序入口
///
/// 参数
public static void Main(string[] args)
{
try
{
string path = @"c:\test.txt";
ReadInfoFromFile(path);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
private static void ReadInfoFromFile(string filePath)
{
if (File.Exists(filePath))
{
List
// 打开文件时 一定要注意编码 也许你的那个文件并不是GBK编码的
using (StreamReader sr = new StreamReader(filePath, Encoding.GetEncoding("GBK")))
{
while (!sr.EndOfStream) //读到结尾退出
{
string temp = sr.ReadLine();
if (!list.Contains(temp)) //去除重复的行
{
list.Add(temp);
}
}
}
//写回去,第二个参数 Append = false ,就是说覆盖原来的
using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("GBK")))
{
foreach (string line in list)
{
sw.WriteLine(line);
}
}
}
}
全部回答
- 1楼网友:千杯敬自由
- 2021-03-03 14:03
http://download.csdn.net/source/272974 下边是截图catchimg方法,可从大多数的视频文件中截图成功,大家可测试; 如果截图不成功,大多是因为视频本身的问题,如编码标准或加了密. 但从在线录制的视频flv文件中截图,还未发现截图失败; /// /// @从视频文件截图,生成在视频文件所在文件夹 /// 在web.config 中需要两个前置配置项: /// 1.ffmpeg.exe文件的路径 /// /// 2.截图的尺寸大小 /// /// 3.视频处理程序ffmpeg.exe /// /// /// 成功:返回图片虚拟地址; 失败:返回空字符串 public string catchimg(string vfilename) { //取得ffmpeg.exe的路径,路径配置在web.config中,如: string ffmpeg=system.configuration.configurationsettings.appsettings["ffmpeg"]; if ( (!system.io.file.exists(ffmpeg)) || (!system.io.file.exists(vfilename)) ) { return ""; } //获得图片相对路径/最后存储到数据库的路径,如:/web/flvfile/user1/00001.jpg string flv_img = system.io.path.changeextension(vfilename,".jpg") ; //图片绝对路径,如:d:\video\web\flvfile\user1\0001.jpg string flv_img_p = httpcontext.current.server.mappath(flv_img); //截图的尺寸大小,配置在web.config中,如: string flvimgsize=system.configuration.configurationsettings.appsettings["catchflvimgsize"]; system.diagnostics.processstartinfo startinfo = new system.diagnostics.processstartinfo(ffmpeg); startinfo.windowstyle = system.diagnostics.processwindowstyle.hidden; //此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过 startinfo.arguments = " -i " + vfilename + " -y -f image2 -t 0.001 -s " + flvimgsize + " " + flv_img_p ; try { system.diagnostics.process.start(startinfo); } catch { return ""; } ///注意:图片截取成功后,数据由内存缓存写到磁盘需要时间较长,大概在3,4秒甚至更长; ///这儿需要延时后再检测,我服务器延时8秒,即如果超过8秒图片仍不存在,认为截图失败; ///此处略去延时代码.如有那位知道如何捕捉ffmpeg.exe截图失败消息,请告知,先谢过! if ( system.io.file.exists(flv_img_p)) { return flv_img; } return ""; } 顺便也探讨个问题,就是我无法从ffmpeg.exe捕捉截图失败消息~ 不知大家可否有办法取得,我目前只能通过检测图片是否生成来判断成功与否,但时间较慢,因为这个检测程序就让用户要多等大概4,5秒时间
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯