4

助けが必要です。例外の詳細を含むテキスト ファイルを使用してエラー ログを作成しています。それで、ユーザーがメモ帳のスクロールバーをスクロールしないように、または100番目の文字で文字列が次の行に書き込まれるとしましょう。それを達成する方法がわかりません。前もって感謝します。

サンプル(これは私の現在の出力であり、すべて直線です)

STACKTRACE:

at stacktraceabcdefghijklmnopqrstuvwxyztacktraceabcdefghijklmnopqrswxyztacktraceabcdefghijk

* *MY DESIRED OUTPUT (文字列は特定の文字数の後に次の行に書き込まれます)

STACKTRACE:

at stacktraceabcdefghijklmno    
pqrstuvwxyztacktraceabcdefgh    
ijklmnopqrswxyztacktraceabcd    
efghijk

マイコード

builder.Append(String.Format("STACKTRACE:"));
            builder.AppendLine();
            builder.Append(logDetails.StackTrace);  
4

4 に答える 4

1

最良の、最も簡単で一般的な回答:)。値をsplitAtその文字数に設定するだけで、それを壊したいのです。

string originalString = "1111222233334444";
List<string> test = new List<string>();
int splitAt = 4; // change 4 with the size of strings you want.
for (int i = 0; i < originalString.Length; i = i + splitAt)
{
    if (originalString.Length - i >= splitAt)
        test.Add(originalString.Substring(i, splitAt));
    else
        test.Add(originalString.Substring(i,((originalString.Length - i))));
}
于 2015-06-26T11:23:58.437 に答える
1

このための関数を作成できます

    string splitat(string line, int charcount)
{
     string toren = "";
     if (charcount>=line.Length)
     {
          return line;
     }
     int totalchars = line.Length;
     int loopcnt = totalchars / charcount;
     int appended = 0;
     for (int i = 0; i < loopcnt; i++)
     {
          toren += line.Substring(appended, charcount) + Environment.NewLine;
          appended += charcount;
          int left = totalchars - appended;
          if (left>0)
          {
               if (left>charcount)
               {
                    continue;
               }
               else
               {
                    toren += line.Substring(appended, left) + Environment.NewLine;
               }
          }
     }
     return toren;
}
于 2013-10-24T08:04:23.670 に答える