Если конкретной строки нет в файле, я пытаюсь сообщить о сообщении.Я продолжаю получать одно и то же сообщение - PullRequest
0 голосов
/ 31 декабря 2018

Я читаю текстовый файл.Если конкретной строки нет в файле, я пытаюсь сообщить о сообщении.Я продолжаю получать одно и то же сообщение снова, или, совсем нет, в зависимости от того, куда я его положил.

Я переместил это (код чуть выше counter ++; около дна) "иначе lbOne.Items.Add (txtID.Text + "не существует."); "вокруг каждой мыслимой линии без удачи.Я знаю достаточно, чтобы быть опасным, поэтому мог бы помочь с этим.

    if (rButtonFind.Checked)
        {
            int counter = 0;
            string line;
            System.IO.StreamReader file = new System.IO.StreamReader(@"F:\Quality\CMM Fixtures\fixtures.txt");

            if (new FileInfo(@"F:\09 Quality\CMM Fixtures\fixtures.txt").Length == 0)
            {
                MessageBox.Show("There is no data in the file to search." + "\n" + "There must be at least one fixture" + "\n" + " to not see this message.");
            }

                while ((line = file.ReadLine()) != null)
                {
                    if (line.Contains(txtID.Text))
                    {
                        lbOne.Items.Add(line);
                    }
                    else
                    lbOne.Items.Add(txtID.Text + " does not exist.");
                    counter++;
                }           

                file.Close();                
            }         
        }

Как я уже сказал, в нем либо много раз перечисляется сообщение "не существует", либо его нет вовсе.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Я нашел ответ, поиграв с кодом Джеффа.Просто переключив объявление bool на true, а затем, если найдено значение "! True", и удалив разрыв, он работает как надо.Я бы не получил это без помощи Джеффса.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1004

0 голосов
/ 31 декабря 2018

Поскольку вам нужно знать только, содержит ли файл хотя бы одно вхождение строки, то этот код вам нужен.Но вам также нужно лучше защищаться от несуществующего файла.

Я не знаю, должен ли counter считаться числом прочитанных строк или он должен указывать количество раз, которое строка являетсяне найдено.Я просто предположил, что это число раз, когда строка не найдена.Но независимо от того, область действия counter находится внутри блока if, и поэтому ее бесполезно, если вы не собираетесь что-то делать с ней позже, в этом случае вам придется изменить ее область действия.

if (rButtonFind.Checked) {
   int counter = 0;
   string line;
   string filename = @"F:\Quality\CMM Fixtures\fixtures.txt";
   System.IO.StreamReader file = new System.IO.StreamReader(filename);
   if (new FileInfo(filename).Length == 0) {
      MessageBox.Show("There is no data in the file to search." + "\n" + "There must be at least one fixture" + "\n" + " to not see this message.");
   } else {
      bool found = false;
      while ((line = file.ReadLine()) != null) {
         if (line.Contains(txtID.Text)) {
            lbOne.Items.Add(line);
            found = true;
            break;
         }
      }
      if (!found) {
         lbOne.Items.Add(txtID.Text + " does not exist.");
         counter++;
      }
   }
   file.Close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...