用C#修饰部分文本文件的代码

用C#修饰部分文本文件的代码,第1张

概述用C#修饰部分文本文件的代码

我有一个情况,我给了一个文本格式如下的文本文件:

C:Usersadmindocumentsreport2011.docx: My Report 2011 C:Usersadmindocumentsnewposter.docx: Dinner Party Poster 08

如何修剪文本文件,以便修剪“:”和后面的所有字符。

例如,这样的输出将如下所示:

C:Usersadmindocumentsreport2011.docx C:Usersadmindocumentsnewposter.docx Current Code: private voID button1_Click(object sender,EventArgs e) { using (StreamWriter sw = file.AppendText(@"c:output.txt")) { StreamReader sr = new StreamReader(@"c:filename.txt"); Regex reg = new Regex(@"w:(.(?!:))+"); List<string> parsedStrings = new List<string>(); while (sr.EndOfStream) { sw.Writeline(reg.Match(sr.Readline()).Value); } } }

不工作:(

ActivateDeviceEx是否启动驱动程序?

防止subprocess创build可见的窗口?

如何以编程方式(c#)valIDation国际文化(如中文)的驱动器号?

如何强制windows重新连接到networking驱动器

如何编译使用VS2010的windows x64位的Leptonica库?

windows桌面ScreenMarker

什么是Application Server for ASP.NET?

linux命令在使用SharpSSH库时不能从.NET执行

.NET窗口捕获

IIS – 从.NET应用程序的Cli中将目录设置为应用程序

int index = myString.LastIndexOf(":"); if (index > 0) myString= myString.Substring(0,index);

编辑 – 添加基于修改问题的答案。 它可以被略微压缩,但是为了清楚发生的事情而扩展了。

using (StreamWriter sw = file.AppendText(@"c:output.txt")) { using(StreamReader sr = new StreamReader(@"input.txt")) { string myString = ""; while (!sr.EndOfStream) { myString = sr.Readline(); int index = myString.LastIndexOf(":"); if (index > 0) myString = myString.Substring(0,index); sw.Writeline(myString); } } }

编辑

StreamReader sr = new StreamReader("yourfile.txt"); Regex reg = new Regex(@"w:(.(?!:))+"); List<string> parsedStrings = new List<string>(); while (!sr.EndOfStream) { parsedStrings.Add(reg.Match(sr.Readline()).Value); }

当然。 在阅读每一行时,做一个

Console.Writeline(line.Substring(0,line.IndexOf(": "));

我会使用这里给出的答案Code修剪在C#中的文本文件的一部分,并找到第二次出现,然后在子字符串中使用它。

var s = @"C:Usersadmindocumentsreport2011.docx: My Report 2011"; var i = GetNthIndex(s,':',2); var result = s.Substring(i+1); public int GetNthIndex(string s,char t,int n) { int count = 0; for (int i = 0; i < s.Length; i++) { if (s[i] == t) { count++; if (count == n) { return i; } } } return -1; }

假设在文件应该存在的地方完成这个工作,你可以在得到冒号索引后,通过检查文件的存在来处理这个问题(考虑到我所假设的)中的任何冒号。

List<string> files = new List<string>(); files.Add(@"C:Usersadmindocumentsreport2011.docx: My Report 2011"); files.Add(@"C:Usersadmindocumentsnewposter.docx: Dinner Party Poster 08"); files.Add(@"C:Usersadmindocumentsnewposter.docx: Dinner Party: 08"); int lastColon; string filename; foreach (string s in files) { bool isfilePath = false; filename = s; while (!isfilePath) { lastColon = filename.LastIndexOf(":"); if (lastColon > 0) { filename = filename.Substring(0,lastColon); if (file.Exists(filename)) { Console.Writeline(filename); isfilePath = true; } } else { throw new fileNotFoundException("file not found",s); } } }

试试这个:更快:

string s = @"C:Usersadmindocumentsreport2011.docx: My Report 2011"; string path = Path.GetDirectoryname(s) + s.Split(new char[] { ':' }) [1]; Console.Writeline(path); //C:Usersadmindocumentsreport2011.docx

您需要导入System.IO

你可以使用split:

string[] splitted= myString.Split(':');

然后你得到一个数组,你拿第一个。

var mySplittedString = splitted[0]

看看这里,如果你需要更多的信息。

编辑:在你的情况下,你得到一个数组至少3的大小,所以你需要拆分[0]和拆分[1]

总结

以上是内存溢出为你收集整理的用C#修饰部分文本文件的代码全部内容,希望文章能够帮你解决用C#修饰部分文本文件的代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1284191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存