0

同様の質問が寄せられていることは承知していますが、別のプログラムによって変更されたテキスト ファイルをリストボックスで監視しようとしています。ファイルの一番上の行を選択し、その行に基づいてコマンドを実行するように設定してから、一番上の行を削除します。削除後にリストボックスを更新して新しいトップ行を読み取り、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;
                 }
            }
         }

    }
4

2 に答える 2

0

ファイルの内容を継続的にポーリングするよりも、 FileSystemWatcherを使用して変更通知をキャッチする方がよいでしょう。

于 2013-07-06T00:54:13.973 に答える