-1

ユーザーが配送の詳細をテキスト ボックスに入力し、テキストが txt ファイル (メモ帳の txt ファイル) に追加されるコードを作成しようとしています。これは私の試みです。「、、」という余分な行が表示されるのはなぜですか?

private void FrmDelivery_Load(object sender, EventArgs e)
{
    if (theDelivery != null)
    {
        txtCustomerName.Text = theDelivery.customerName;
        txtCustomerAddress.Text = theDelivery.customerAddress;
        txtArrivalTime.Text = theDelivery.arrivalTime;      
        using (StreamWriter writer = new StreamWriter("visits.txt", true)) //true shows that text would be appended to file
        {
            writer.WriteLine(theDelivery.customerName + ", " + theDelivery.customerAddress + ", " + theDelivery.arrivalTime);
        }
    }
} 
4

3 に答える 3

2

問題は、 上のファイルに書き込んでいることですForm_Load。ユーザーが何かを変更したときにのみ書き込みたいと思います。

したがって、保存ボタンのクリックイベントを処理して、それに書き込むことができます。

private void FrmDelivery_Load(object sender, EventArgs e)
{
    if (theDelivery != null)
    {
        txtCustomerName.Text = theDelivery.customerName;
        txtCustomerAddress.Text = theDelivery.customerAddress;
        txtArrivalTime.Text = theDelivery.arrivalTime;      
    }
} 

private void btnSave_Click(object sender, System.EventArgs e)
{
    string line = string.Format("{0},{1},{2}{3}"
                , txtCustomerName.Text 
                , txtArrivalTime.Text  
                , theDelivery.arrivalTime
                , Environment.NewLine);
    File.AppendAllText("visits.txt", line);   
}

File.AppendAllTextファイルに書き込むもう 1 つの (快適な) 方法です。

于 2012-11-26T22:46:30.817 に答える
1

..テキストボックスの内容をファイルに書き込んでいないため..変数を書き込んでいます(どこにも初期化されていないようです):

修理済み:

writer.WriteLine(txtCustomerName.Text + ", " + txtCustomerAddress.Text + ", " + txtArrivalTime.Text); // Fixed.

また、フォームの読み込み時にこれを行っています..この時点でテキストボックスにデータがありますか(またはtheDelivery初期化されていますか)?

于 2012-11-26T22:35:18.640 に答える
0

DeliveryオブジェクトinsatanceのcustomerName、customerAddress、arrivalTime文字列プロパティはすべて空の文字列に初期化されます。ファイルに書き込む前に、文字列を設定する必要があります。

于 2012-11-26T22:53:58.403 に答える