0

C#アプリケーションで長い文字列を作成しています。これらはユーザーがデータベースで更新するために選択したフィールドのヘッダーであるため、1行にとどめておく必要があります。文字列はログファイルで使用されます。

更新するすべてのフィールドを選択すると、文字列が1行に表示するには長すぎて、自動的に折り返されるようです。

テキストファイルは、折り返すことなく任意の長さの文字列(メモリが許す限り)を処理できるはずなので、私は混乱しています。

文字列が約1050文字より長くなると、自動折り返しが行われるようです。

私のコードは以下の通りです:

private void UpdateCustomer(string pCurrentFileName, ref StringBuilder log, string date, ref string directoryPath, ref string logFilePath)
{
    // set the logfile paths for customer update
    directoryPath = Path.Combine(pLogFilePath, "CustomerUpdate_Log_" + date.Replace("/", "").Replace(" ", "").Replace(":", ""));
    logFilePath = Path.Combine(directoryPath, "CustomerUpdate.log");
    DataSet customerUpdateDataSet = new CustomerUpdateValidator().ImportCustomersForUpdateFromExcelFileToDataSet(pCurrentFileName);

    log.Append("-------------------------------------------------------------------------" + "\r\n");
    log.Append("Bulk Maintenance Log: Customer Updatess" + "\r\n");
    log.Append("-------------------------------------------------------------------------" + "\r\n");
    log.Append(date + "\r\n\r\n");
    log.Append("Total number of Customer to be updated: " + (customerUpdateDataSet.Tables["CustomerData"].Rows.Count - 2).ToString() + "\r\n\r\n");
    log.Append("Data to be Inserted" + "\r\n");
    log.Append("-".PadRight(300, '-') + "\r\n\r\n\r\n");

    StringBuilder header = new StringBuilder("Row".PadRight(10, ' ') + "\t");
    header.Append("URN".PadRight(40, ' ') + "\t");

    int count = 0;
    // for each row in the grid view
    for (int i = 0; i < this.gridView1.DataRowCount; i++)
    {
        // if the value is checked
        if (Convert.ToBoolean(this.gridView1.GetRowCellValue(i, "CheckMarkSelection")))
        {
            // get the fields from the checked column
            string baxiDescription = this.gridView1.GetRowCellValue(i, "SimpleName").ToString();
            int size = getSizeFromType(this.gridView1.GetRowCellValue(i, "Type").ToString());
            header.Append(baxiDescription.PadRight(size, ' ') + "\t");
            count = i;
        }
    }

    header.Append("Result".PadRight(10, ' ') + "\t");
    header.Append("Reason".PadRight(30, ' ') + "\t");

    log.Append(header.ToString() + "\r\n");
    log.Append(new StringBuilder("-".PadRight(header.Length + 60, '-') + "\r\n"));
}

なぜこれが起こっているのか考えはありますか?

私のデータセット:

ここに画像の説明を入力してください

ラップされたログファイル:

ここに画像の説明を入力してください

4

1 に答える 1

0

生成された文字列を .txt ファイルに保存し、ログファイル ブラウザーでテキストファイルを開くと、問題は実際にはコードではなく .txt ファイルに関連しているようです。

于 2012-11-15T10:37:13.010 に答える