c#tab包裹的字符串

时间:2013-09-23 16:55:45

标签: c# tabs textwrapping

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

WriteToOutput("\t" + strErrorOutput);

我上面使用的行只标记了文本的第一行。如何缩进/标记整个字符串?

4 个答案:

答案 0 :(得分:1)

File.WriteAllLines(FILEPATH,input.Split(new string[] {"\n","\r"}, StringSplitOptions.None)
                                 .Select(x=>"\t"+x));

答案 1 :(得分: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的行,并且所有文本都以制表符开头并以换行符结尾。

答案 2 :(得分:0)

按换行符替换所有换行符后跟一个标签:

WriteToOutput("\t" + strErrorOutput.Replace("\n", "\n\t"));

答案 3 :(得分:0)

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

strErrorOutput = strErrorOutput.Replace("\r\n", "\r\n\t");
WriteToOutput("\t" + strErrorOutput);