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

时间:2013-05-17 21:41:28

标签: c# filestream

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

  

这是一个有很多很多角色和一些角色的段落   姓名和日期。我的名字" Sam"我出生在" 12:00" "中午&#34 ;.我住在   "任何地方"

现在我希望输出如下:

  

这是一个有很多很多角色和一些角色的段落   姓名和日期。我的名字;" Sam;"我出生在;" 12:00;" ;"中午;&#34 ;.一世   住在;"任何地方;"

它应该使用文件流打开文件,然后读取字符,然后在找到反转的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();
        }
    }
}

输出: -

  

这是一个有很多很多角色和一些角色的段落   姓名和日期。我的名字&#34 ;; Sam&#34 ;;我出生在&#34 ;; 12:00&#34 ;; &#34 ;;中午&#34 ;;。一世   住在&#34 ;;任何地方&#34 ;; 。 154个字符

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

4 个答案:

答案 0 :(得分:7)

交换操作的顺序:

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

e.g。在您决定输出分号之后,不要写原始字符。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

来逐个字符地阅读吗?下面的代码将整个块作为一个块,并返回一个包含所有行的列表。

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

答案 3 :(得分:-1)

using System;
using System.IO;
using System.Text;

namespace getto
{
  class Program
  {
     static void Main(string[] args)
     {
         var path = @"C:\Users\VASANTH14122018\Desktop\file.v";

         string content = File.ReadAllText(path, Encoding.UTF8);
        Console.WriteLine(content);
        //string helloWorld = "Hello, world!";
        foreach(char c in content)
            {
                Console.WriteLine(c);
            }
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
    }
  }
}