Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
C# 在多行中拆分在特定行位置的多行文字_C#_Visual C# Express 2010 - Fatal编程技术网

C# 在多行中拆分在特定行位置的多行文字

C# 在多行中拆分在特定行位置的多行文字,c#,visual-c#-express-2010,C#,Visual C# Express 2010,我有一个多行结构的文本文件: 12345行01中的漂亮文本 95469第02行中的其他文本 16987第03行中的漂亮文本 (等等……) 我想要这个: 12345 line01中的漂亮文本 95469 第02行中的其他文本 16987 第03行中的漂亮文本 因此,对于每一行,在位置5处,我需要一个文本字符串的新行 已尝试使用字符串插入\n。删除()。插入(),但仅适用于第一行。 我该怎么做 编辑 通过请求添加的代码 在input.txt中有多行文本文件 StreamReade

我有一个多行结构的文本文件:

12345行01中的漂亮文本
95469第02行中的其他文本
16987第03行中的漂亮文本
(等等……)
我想要这个:

12345
line01中的漂亮文本
95469
第02行中的其他文本
16987
第03行中的漂亮文本
因此,对于每一行,在位置5处,我需要一个文本字符串的新行

已尝试使用
字符串插入
\n
。删除()。插入()
,但仅适用于第一行。 我该怎么做

编辑 通过请求添加的代码 在input.txt中有多行文本文件

        StreamReader myReader = new StreamReader("input.txt");
        string myString00 = myReader.ReadLine();

        string myStringFinal = myString00;
        myStringFinal = myStringFinal.Remove(5, 1).Insert(5, "\n");

        myReader.Close();
        FileStream myFs = new FileStream("output.txt", FileMode.Create);
        // First, save the standard output.
        TextWriter tmp = Console.Out;
        StreamWriter mySw = new StreamWriter(myFs);
        Console.SetOut(mySw);
        Console.WriteLine(myStringFinal);
        Console.SetOut(tmp);
        Console.WriteLine(myStringFinal);
        mySw.Close();
        Console.ReadLine();

您可以使用
Regex

var subject = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";
var expected = Regex.Replace(subject,@"(\d{5})\s?","$1\r\n");

基本上,这将查找5个数字,后跟一个空格(可选),如果找到,则将其替换为数字和新行。你已经完成了。

这里有一些你可以用
正则表达式试试的东西

var subject = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";
var expected = Regex.Replace(subject,@"(\d{5})\s?","$1\r\n");

基本上,这将查找5个数字,后跟一个空格(可选),如果找到,则将其替换为数字和新行。你已经完成了。

这里有一些你可以用
正则表达式试试的东西

var subject = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";
var expected = Regex.Replace(subject,@"(\d{5})\s?","$1\r\n");

基本上,这将查找5个数字,后跟一个空格(可选),如果找到,则将其替换为数字和新行。你已经完成了。

这里有一些你可以用
正则表达式试试的东西

var subject = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";
var expected = Regex.Replace(subject,@"(\d{5})\s?","$1\r\n");

基本上,这将查找5个数字,后跟一个空格(可选),如果找到,则将其替换为数字和新行。您就完成了。

只有当数字正好是5个字符时,这才有效

string input = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";

var lines = input.Split(new[] { Environment.NewLine }, StringSplitOptions.None);

var formattedLines = lines
    .Select(x => new
    {
        Number = int.Parse(x.Substring(0, 5)),
        Data = x.Substring(5).TrimStart()
    })
    .ToList();
formattedLines
将是您的行的集合,其中
Number
Data
包含行中的信息

var firstLinesData = formattedLines[0].Data;
现在,要制作输出格式:

StringBuilder builder = new StringBuilder();

foreach (var item in formattedLines)
{
    builder.AppendLine(item.Number.ToString());
    builder.AppendLine(item.Data);
}

string output = builder.ToString();

仅当数字正好为5个字符时,此操作才有效

string input = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";

var lines = input.Split(new[] { Environment.NewLine }, StringSplitOptions.None);

var formattedLines = lines
    .Select(x => new
    {
        Number = int.Parse(x.Substring(0, 5)),
        Data = x.Substring(5).TrimStart()
    })
    .ToList();
formattedLines
将是您的行的集合,其中
Number
Data
包含行中的信息

var firstLinesData = formattedLines[0].Data;
现在,要制作输出格式:

StringBuilder builder = new StringBuilder();

foreach (var item in formattedLines)
{
    builder.AppendLine(item.Number.ToString());
    builder.AppendLine(item.Data);
}

string output = builder.ToString();

仅当数字正好为5个字符时,此操作才有效

string input = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";

var lines = input.Split(new[] { Environment.NewLine }, StringSplitOptions.None);

var formattedLines = lines
    .Select(x => new
    {
        Number = int.Parse(x.Substring(0, 5)),
        Data = x.Substring(5).TrimStart()
    })
    .ToList();
formattedLines
将是您的行的集合,其中
Number
Data
包含行中的信息

var firstLinesData = formattedLines[0].Data;
现在,要制作输出格式:

StringBuilder builder = new StringBuilder();

foreach (var item in formattedLines)
{
    builder.AppendLine(item.Number.ToString());
    builder.AppendLine(item.Data);
}

string output = builder.ToString();

仅当数字正好为5个字符时,此操作才有效

string input = @"12345 beautiful text in line01
95469 other text in line02
16987 nice text in line03";

var lines = input.Split(new[] { Environment.NewLine }, StringSplitOptions.None);

var formattedLines = lines
    .Select(x => new
    {
        Number = int.Parse(x.Substring(0, 5)),
        Data = x.Substring(5).TrimStart()
    })
    .ToList();
formattedLines
将是您的行的集合,其中
Number
Data
包含行中的信息

var firstLinesData = formattedLines[0].Data;
现在,要制作输出格式:

StringBuilder builder = new StringBuilder();

foreach (var item in formattedLines)
{
    builder.AppendLine(item.Number.ToString());
    builder.AppendLine(item.Data);
}

string output = builder.ToString();


在每行上循环。使用substring()获取前5个字符作为字符串。使用字符串生成器并添加第一部分,抓取下一部分并添加到字符串生成器中,每行循环一次。使用substring()获取前5个字符作为字符串。使用字符串生成器并添加第一部分,抓取下一部分并添加到字符串生成器中,每行循环一次。使用substring()获取前5个字符作为字符串。使用字符串生成器并添加第一部分,抓取下一部分并添加到字符串生成器中,每行循环一次。使用substring()获取前5个字符作为字符串。使用字符串生成器并添加第一部分,抓取下一部分并添加到字符串生成器中

您能发布到目前为止的代码吗used@akibau,你知道你只是在读第一行。您只调用了一次
ReadLine()
。。我不知道我是否知道。。我是一个真正的新手程序员,所以我需要2/3天的时间来理解你写的所有东西,并使其工作。谢谢你,你太棒了@akibau Sriram Sakthivel下面的答案使用正则表达式查找5位数字,然后添加一个换行符。值得一看。如果它解决了你的问题,一定要接受!你能发布到目前为止的代码吗?刚刚添加了我需要的代码used@akibau,你知道你只是在读第一行。您只调用了一次
ReadLine()
。。我不知道我是否知道。。我是一个真正的新手程序员,所以我需要2/3天的时间来理解你写的所有东西,并使其工作。谢谢你,你太棒了@akibau Sriram Sakthivel下面的答案使用正则表达式查找5位数字,然后添加一个换行符。值得一看。如果它解决了你的问题,一定要接受!你能发布到目前为止的代码吗?刚刚添加了我需要的代码used@akibau,你知道你只是在读第一行。您只调用了一次
ReadLine()
。。我不知道我是否知道。。我是一个真正的新手程序员,所以我需要2/3天的时间来理解你写的所有东西,并使其工作。谢谢你,你太棒了@akibau Sriram Sakthivel下面的答案使用正则表达式查找5位数字,然后添加一个换行符。值得一看。如果它解决了你的问题,一定要接受!你能发布到目前为止的代码吗?刚刚添加了我需要的代码used@akibau,你知道你只是在读第一行。您只调用了一次
ReadLine()
。。我不知道我是否知道。。我是一个真正的新手程序员,所以我需要2/3天的时间来理解你写的所有东西,并使其工作。谢谢你,你太棒了@akibau Sriram Sakthivel下面的答案使用正则表达式查找5位数字,然后添加一个换行符。值得一看。如果它解决了你的问题,一定要接受!我明白你说的ReadLine()是什么意思了。没关系,原来的输入文件是一个杂乱的长行,在一系列字符串之后变成多行。我做了替换,达到了
string myString07
。我总结了问题。好吧,试过你的例子,做了一个小小的改变。但问题是,在
字符串输入=@”“
中,我需要插入清理后的多行文本,该文本现在存储在
字符串myString07
中。如何将该内容传递到示例第一行的
字符串输入=
?尝试了
string input=@myString07
,但还是只处理了第一行,其他行保持不变。我明白了您关于ReadLine()的意思。没关系,奥利吉