2017-06-08 16 views
0

私は、彼らが滞在しているホテルの詳細をユーザーに尋ねるアプリケーションを書いて、幸いにも追加されますが、私が別の人物を追加すると、すでにファイルにあった以前のデータが上書きされます。しかし、私はすべてのデータ入力を保持したい。ここで既存のテキストファイルにテキストを追加するにはどうすればよいですか?

は私のコードです:

hotelName = txt_HotelName.Text; 

ratings = txt_HotelRating.Text; 
roomsNeeded = txt_RoomsNeeded.Text; 
name = txt_UserName.Text; 
surname = txt_UserLastname.Text; 
contactDetails = txt_ContactDetail.Text; 
paymentDetails = txt_PaymentMehthod.Text; 
paymentDate = txt_PaymentDate.Text; 

using (StreamWriter sw = new StreamWriter("HotelDocument.txt")) 
{ 
    sw.WriteLine(txt_HotelName + Environment.NewLine + txt_HotelRating + Environment.NewLine + txt_RoomsNeeded + 
     Environment.NewLine + txt_UserName + Environment.NewLine + txt_UserLastname + Environment.NewLine + txt_ContactDetail + 
     Environment.NewLine + txt_PaymentMehthod + Environment.NewLine + txt_PaymentDate); 
} 

MessageBox.Show($"Thank you for using our system {txt_UserName.Text}.", "Thank you", MessageBoxButtons.OK); 

それでは、私がしたいことは、むしろオーバー書くたびにそれらを持つよりも、すべてのデータを収集することです。多分100%ユニークであるとしても、現在のDateTime、またはnew Guid()を使用

using (StreamWriter sw = new StreamWriter("HotelDocument.txt")) 

ので、代わりの「HotelDocument.txt」:

+0

だから、あなたのHotelDocument.txtに新しいテキストを追加するか、すべての入力に対して新しいtxtを作成したいのですか? –

答えて

1

はファイルを追加をお試しください:

string line = string.Join(Environment.NewLine, new string[] { 
    $"Ratings: {ratings}", 
    $"Rooms need: {roomsNeeded}", 
    $"Name: {name}", 
    $"Surname: {surname}", 
    $"Details: {contactDetails}", 
    $"Payment: {paymentDetails}", 
    $"Payment Date: {paymentDate}"); 
+0

それは、おかげで仕事をしています。しかし、今私は別の問題を抱えています。文字通り、ユーザーの入力のみを表示しています。どのようにして、どのようなデータが入力されたのかを知るために、txt文書のフィールドを設定できますか?たとえば、ホテル名の場合は「Novotel」と表示されており、「Hotel:Novotel」としたいと考えています。 –

+0

@Mo Mehdi:書かれたデータを整理する場合は、*文字列補間*または*書式設定*を使用することをお勧めします。 –

+0

ありがとう、素晴らしい!!!! –

0

あなたは一意の名前を指定する必要があります。そうですね、

var uniqueFileName = new Guid().ToString() + ".txt"; 
using (StreamWriter sw = new StreamWriter(uniqueFileName)) 

既存のHotelDocument.txt内に新しいデータを追加しようとしていますか?あなたは入力されたデータを整理したい場合、私はをフォーマット文字列の補間にC#6.0)またはを使用することをお勧めし:

string line = string.Join(Environment.NewLine, new string[] { 
    ratings, 
    roomsNeeded, 
    name, 
    surname, 
    contactDetails, 
    paymentDetails, 
    paymentDate}); 

    File.AppendAllLines("HotelDocument.txt", new string[] {line}); 

編集:

関連する問題