0

我正在将一个大字符串(大约 100 行)写入一个文本文件,并希望将整个文本块设置为标签。

WriteToOutput("\t" + strErrorOutput);

我在上面使用的行仅在文本的第一行制表符。如何缩进/制表符整个字符串?

4

4 回答 4

1
File.WriteAllLines(FILEPATH,input.Split(new string[] {"\n","\r"}, StringSplitOptions.None)
                                 .Select(x=>"\t"+x));
于 2013-09-23T17:02:55.610 回答
1

为此,您必须有一个有限的行长(即<100 个字符),此时此问题变得容易。

public string ConvertToBlock(string text, int lineLength)
{
    string output = "\t";

    int currentLineLength = 0;
    for (int index = 0; index < text.Length; index++)
    {
        if (currentLineLength < lineLength)
        {
            output += text[index];
            currentLineLength++;
        }
        else
        {
            if (index != text.Length - 1)
            {
                if (text[index + 1] != ' ')
                {
                    int reverse = 0;
                    while (text[index - reverse] != ' ')
                    {
                        output.Remove(index - reverse - 1, 1);
                        reverse++;
                    }
                    index -= reverse;
                    output += "\n\t";
                    currentLineLength = 0;
                }
            }
        }
    }
    return output;
 }

这会将任何文本转换为一个文本块,该文本块被分成几行长度lineLength,并且都以制表符开头并以换行符结尾。

于 2013-09-23T17:09:11.877 回答
0

用换行符替换所有换行符,后跟一个制表符:

WriteToOutput("\t" + strErrorOutput.Replace("\n", "\n\t"));
于 2013-09-23T17:00:45.553 回答
0

您可以复制您的字符串以将 CRLF 替换为 CRLF + TAB 的输出。并将该字符串写入输出(仍以初始 TAB 为前缀)。

strErrorOutput = strErrorOutput.Replace("\r\n", "\r\n\t");
WriteToOutput("\t" + strErrorOutput);
于 2013-09-23T17:01:25.997 回答