如何通过1 c#1读取文件中的字符

我希望我的程序读取所有字符1到1的文本文件,并且当它找到倒置的逗号(“)时,它会在该倒置的逗号之前添加分号。例如,我们在文本文件中有一个段落如下:

这是一个包含大量字符和一些名称和日期的段落。 我叫“Sam”,我出生在“12:00”“中午”。 我住在“任何地方”。

现在我希望输出如下:

这是一个包含大量字符和一些名称和日期的段落。 我的名字;“山姆;” 我出生在;“12:00;” ;“中午;”。 我住在;“任何地方;” 。

它应该使用文件流打开文件,然后读取字符,然后在它找到反转的comman的地方添加分号。 输出应该等于textbox1.text。

我提出的代码: –

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char ch; int Tchar = 0; StreamReader reader; reader = new StreamReader(@"C:\Users\user1\Documents\data.txt"); do { ch = (char)reader.Read(); Console.Write(ch); if (Convert.ToInt32(ch) == 34) { Console.Write(@";"); } Tchar++; } while (!reader.EndOfStream); reader.Close(); reader.Dispose(); Console.WriteLine(" "); Console.WriteLine(Tchar.ToString() + " characters"); Console.ReadLine(); } } } 

输出: –

这是一个包含大量字符和一些名称和日期的段落。 我的名字是“; Sam”; 我出生在“12:00”; “;中午”;。 我住在“任何地方”; 。 154个字符

在倒置逗号之前我想要那个分号。 任何帮助,将不胜感激。 谢谢

交换操作的顺序:

  if (Convert.ToInt32(ch) == 34) { Console.Write(@";"); } Console.Write(ch); 

例如,在您决定输出分号之后,不要写原始字符。

尝试ch = (char)reader.Peek();

这将读取告诉你下一个字符而不读它。 然后,您可以使用它来检查它是否是“或不是插入:相应的

 if (Convert.ToInt32((char)read.Peek()) == 34) Console.Write(@";") 

你是否必须按性格阅读? 以下代码将整个事件作为一个块,并返回一个包含所有行的列表。

 var contents = File.ReadAllLines (@"C:\Users\user1\Documents\data.txt") .Select (l => l.Replace ("\"", ";\""));