我想让我的程序读取一个文本文件中的所有字符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个字符
我想在倒逗号前加上分号,希望能得到帮助。谢谢你的帮助
换一下操作的顺序。
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 ("\"", ";\""));
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);
}
}
}