• ベストアンサー

改行して書きたい

シリアル通信で定期的に4桁の数字が送られてきます。 それをSample.txtに 0126 0125 0125 0125 0124 と言う風に、記録したいんですが、実際やってみると 0124 と、データが上書きされてしまい,一番最後に送られてきた数字しか記録されません。 これを改行して書くにはどうしたらいいんでしょうか、おしえてください。  data = RecvStr  IO.File.WriteAllText("C:\Test\Sample.txt", data, System.Text.Encoding.GetEncoding("Shift-JIS"))

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

http://msdn.microsoft.com/ja-jp/library/system.io.file.writealltext%28v=vs.110%29.aspx > 新しいファイルを作成し、内容をそのファイルに書き込んだ後、ファイルを閉じます。 既存のターゲット ファイルは上書きされます。 とあります。「データが上書きされてしまい,一番最後に送られてきた数字しか記録されません。」とは正しい動作です。 続けて書きたいのなら 方法1: IO.File.ReadAllTextでファイルから全部読む→新しいデータを加える→IO.File.WriteAllTextでファイルに書き込む 方法2: AppendAllTextメソッドを使う http://msdn.microsoft.com/ja-jp/library/ms143357%28v=vs.110%29.aspx あと、RecvStrに改行文字が入っていない場合は、改行文字を付けたす必要があります。

ny36
質問者

お礼

回答ありがとうございます。

関連するQ&A