Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何读取文件中的字符1乘1 c#_C#_Filestream - Fatal编程技术网

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

如何读取文件中的字符1乘1 c#,c#,filestream,C#,Filestream,我想让我的程序读取一个文本文件,所有字符都是1乘1,只要它找到倒逗号(“),它就会在倒逗号之前添加一个分号。例如,我们在文本文件中有一个段落,如下所示: 这是一段包含了很多很多字符和一些 姓名和日期。我的名字是“山姆”。我出生在“中午12点”。我住在伦敦 “任何地方” 现在我希望输出如下: 这是一段包含了很多很多字符和一些 姓名和日期。我的名字是“山姆;“我出生在”12:00;“中午;“.我 住在任何地方;“ 它应该使用文件流打开文件,然后读取字符,然后在找到倒逗号的地方添加分号。输出应该等于t

我想让我的程序读取一个文本文件,所有字符都是1乘1,只要它找到倒逗号(“),它就会在倒逗号之前添加一个分号。例如,我们在文本文件中有一个段落,如下所示:

这是一段包含了很多很多字符和一些 姓名和日期。我的名字是“山姆”。我出生在“中午12点”。我住在伦敦 “任何地方”

现在我希望输出如下:

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

它应该使用文件流打开文件,然后读取字符,然后在找到倒逗号的地方添加分号。输出应该等于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();
        }
    }
}
输出:-

这是一段包含了很多很多字符和一些 姓名和日期“我的名字”;山姆:“我出生在”;12:00"; ";中午 住在”;“任意位置”;.154个字符


我希望在倒逗号前加上分号。如果您有任何帮助,我们将不胜感激。谢谢您交换操作顺序:

    if (Convert.ToInt32(ch) == 34)
    {
        Console.Write(@";");
    }
    Console.Write(ch);
e、 g.在决定是否输出分号之前,不要写入原始字符。

尝试
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 ("\"", ";\""));

倒逗号?你是说引号(
)?@DarkoKenda没有那么大,只需使用我上面给出的示例,并假设这是我的文件数据。@MarcB是的,我说的是引号。我展示了示例和输出above@MarcB取决于你是否在说英语。:)其他:而不是
if(Convert.ToInt32(ch)==34)
你可以简单地说
if(ch==“”)
。我想让它逐字阅读,这就是问题的全部。公平地说,它似乎没有必要的效率。我觉得自己很愚蠢。我想如果第一个字符是(“),我们就不能添加分号了,感谢answerfile.v包含以下内容。这是一些测试阅读的文本
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);
    }
  }
}