
visual studio 2019 C# で現在開発を行っております。
CSVデータが中身が空のまま保存されているのを解決していただきたいです。
コードの働きとしては、センサーからの値がリアルタイムで送信され、その値がコンソール画面に表示される。自分のタイミングで”q”を押すと通信が停止されCSVデータ(今回ですと、seido1.csv)として保存されるものとなっています。
しかし、現在”seido1.csv”というファイル自体はきちんと存在しているのですが中身が空になっています。特にこれといったエラーなども表示されません。
以前、作製していた同じ内容のものを削除してしまったため再度作り直したところこのような事態となりました。
System.Text.Encoding.CodePages、System.IO.Portsは両方ともVer.6.0.0をインストールしています。
どうか皆様、お力添えしていただきたいです。
よろしくお願いいたします。
C#
1using System; 2using System.IO.Ports; 3using System.Text; 4 5namespace Csvpreserve 6{ 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 //キー入力に使用 12 var outChar = ""; 13 14 //ファイルの場所(使えないけど) 15 string PATH = @"C:/Users/○○/~/ _SensorData.csv"; 16 17 18 //EncodeをShift-Jisに対応 19 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 20 21 //シリアルポート取得(Arduinoのシリアルポート) 22 SerialPort sp = new SerialPort("COM6"); 23 24 //csv出力 25 var sw = new System.IO.StreamWriter("C:seido1.csv", false, System.Text.Encoding.GetEncoding("shift_jis")); 26 27 //Arduino側のサンプリング周波数 28 sp.BaudRate = 9600; 29 sp.Open(); 30 31 while (true) 32 { 33 //センサ値1行分取得 34 string data = sp.ReadLine(); 35 36 //csv出力 37 sw.Write(data); 38 Console.WriteLine(data); 39 40 //Q入力でプログラム終了 41 if (Console.KeyAvailable) 42 { 43 outChar = Console.ReadKey().Key.ToString(); 44 if (outChar == "Q") 45 { 46 return; 47 } 48 } 49 50 } 51 } 52 } 53} 54
【追記】
一度アプリを再起動させ//CSV出力の"sw.Write(data);"を"sw.WriteLine(data);"に書き換えて行ったところ一回目は中身があるcsvデータが保存されたのですが、二回目以降また空のデータが保存されていました。一回目と二回目で visual studio 内のコードをいじりもしていません。

回答1件
あなたの回答
tips
プレビュー