如何在文件中读取字符 1 by 1 c#。

问题描述 投票:7回答:4

我想让我的程序读取一个文本文件中的所有字符1乘1,并且只要发现倒逗号(""),就在倒逗号前加一个分号。例如,我们有一个文本文件中的段落,如下所示。

这是一个包含了很多很多字符和一些名字和日期的段落。我的名字 "山姆 "我出生在 "12:00""中午"。我住在 "任何地方"。

现在我想输出如下。

这是一个包含很多很多字符和一些名字和日期的段落。我的名字叫; "Sam;" 我出生在; "12:00;" ; "中午;"。我住在; "任何地方;"。

它应该使用文件流打开文件,然后读取字符,然后在发现倒装的逗号处加上分号。而且输出应该等于textbox1.text。

CODE TILL I MADE: -

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();
        }
    }
}

OUTPUT:-

这是一个包含很多很多字符和一些名字和日期的段落。我的名字叫";Sam";我出生在";12:00";";中午";。我住在";任何地方";。154个字符

我想在倒逗号前加上分号,希望能得到帮助。谢谢你的帮助

c# filestream
4个回答
7
投票

换一下操作的顺序。

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

例如,在你决定是否输出分号之前,不要写原始字符。


1
投票

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

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

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

1
投票

你呢? 读取一个个字符? 下面的代码将把整个事情作为一个块来做,并返回一个包含所有行的列表。

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

-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);
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.