visualstudio2017 C#
1秒タイマーでファイルの更新時刻を比較し任意の場所を抜き出してUDPで送信するプログラムです。
ビルドして動作させておくとしばらくして
下記タイマー部分のコードの”str1 = str.Substring(9, 2); ”部分で
************** 例外テキスト **************
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 udpSR.Form1.timer1_Tick(Object sender, EventArgs e) 場所 C:\Users\xxxx\Documents\Visual Studio 2017\Projects\xxxx\xxxx\Form1.cs:行 220
場所 System.Windows.Forms.Timer.OnTick(EventArgs e)
場所 System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
が発生します。
220行が”str1 = str.Substring(9, 2);なので
string str, str1 の初期化場所、内容を変更してみましたが、再発します。
何かおかしな部分はありますでしょうか?
visualstudio2017
1private void timer1_Tick(object sender, EventArgs e) 2 { 3 string Tpath = ConfigurationManager.AppSettings["Apath"]; //ファイルのフルパス 4 string Wzz = ConfigurationManager.AppSettings["Wxx"]; //数値 5 int wxy = int.Parse(Wzz); 6 string wls = ""; 7 //DateTime F2 = DateTime.Now; 8 DateTime f1 = File.GetLastWriteTime(Apath); 9 int i = 0; 10 string str=""; 11 string str1=""; 12 13 if (f1 != F1) //初期F1にはダミーが入っている 14 { 15 16 FileStream fs = new FileStream(Apath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); //ReadWrite指定 17 StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("Shift_JIS")); // 18 19 fs.Seek(784,System.IO.SeekOrigin.Begin); //任意の位置 20 str = sr.ReadLine(); 21 sr.Close(); 22 fs.Close(); 23 24 str1 = str.Substring(9, 2); //ここでSystem.NullReferenceException 25 str1 += str.Substring(6, 2); 26 27 int wl = Convert.ToInt32(str1, 16); 28 wl += wxy; 29 wls = wl.ToString(); 30 31 button1.Enabled = false; 32 33 byte[] sendBytes = Encoding.UTF8.GetBytes(wls); 34 35 textBox4.Text = wls; 36 37 if (udpclient == null) 38 { 39 udpclient = new System.Net.Sockets.UdpClient(); 40 } 41 42 43 44 udpclient.BeginSend(sendBytes, sendBytes.Length, textBox2.Text, int.Parse(textBox3.Text), SendCallBack, udpclient); 45 46 F1 = File.GetLastWriteTime(Apath); 47 48 } 49 }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/06 03:06
2019/09/06 03:09
2019/09/06 03:22
2019/09/06 03:33