同様の質問が寄せられていることは承知していますが、別のプログラムによって変更されたテキスト ファイルをリストボックスで監視しようとしています。ファイルの一番上の行を選択し、その行に基づいてコマンドを実行するように設定してから、一番上の行を削除します。削除後にリストボックスを更新して新しいトップ行を読み取り、null まで読み取り続ける必要があるだけです。また、serialPort が開いているかどうかを監視しています。(シリアルポートが閉じている場合にのみループさせたい)。私はC#にかなり慣れていないので、助けていただければ幸いです。私の現在のコード:
public partial class Form1 : Form
{
List<string> myList = new List<string>();
public Form1()
{
InitializeComponent();
myList = System.IO.File.ReadLines("textfile").ToList();
this.GPSCOM.DataSource = myList;
GPSCOM.SelectionMode = SelectionMode.One;
myList.FirstOrDefault();
GPSCOM.SetSelected(0, true);
if (serialPort.IsOpen)
{
return;
}
else
{
for(;;)
{
switch ((string)GPSCOM.SelectedItem)
{
case "set1":
var lines = System.IO.File.ReadAllLines("textfile");
System.IO.File.WriteAllLines("textfile", lines.Skip(1).ToArray());
return;
case "set2":
var lines1 = System.IO.File.ReadAllLines("textfile");
System.IO.File.WriteAllLines("textfile", lines1.Skip(1).ToArray());
return;
case "set3":
var lines2 = System.IO.File.ReadAllLines("textfile");
System.IO.File.WriteAllLines("textfile", lines2.Skip(1).ToArray());
return;
}
}
}
}