0

大きな文字列 (約 100 行) をテキスト ファイルに書き出しています。テキスト ブロック全体をタブで囲みたいと思います。

WriteToOutput("\t" + strErrorOutput);

上記で使用している行は、テキストの最初の行のみにタブを付けています。文字列全体をインデント/タブで移動するにはどうすればよいですか?

4

4 に答える 4

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 に答える
1
File.WriteAllLines(FILEPATH,input.Split(new string[] {"\n","\r"}, StringSplitOptions.None)
                                 .Select(x=>"\t"+x));
于 2013-09-23T17:02:55.610 に答える