Как правильно написать цикл обработки результатов от внешнего приложения? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Добрый лень. Есть файл с кодированной базой. Для нее кем то было написано приложение, чтобы можно было узнать в каком разделе находится та или иная запись. При запуске "MyApp Форма125 base.dat" получается вот такой результат, пример:
Раздел 2 Раздел 4 Раздел 5 Подраздел 1 Раздел 5 Подраздел 4 Раздел 7
и так далее пока искомая строка "Форма125" найдена На Bash, я перехватывала эти результаты для дальнейшей обработки, со своим комментарием
Листинг программы
  1. for /f %%i in ('MyApp Форма125 base.dat') do (
  2. set pos = %%i
  3. echo Запись есть в %pos%
  4. /* дальнейшие действия с переменной pos для передачи в другое приложение
  5. )
В результате я получала:
Запись есть в Раздел 2 Запись есть в Раздел 4 Запись есть в Раздел 5 Подраздел 1
и так далее. Сейчас пытаюсь реализовать подобное на VB.net, но результаты плачевные
Листинг программы
  1. Dim pos As String
  2. Do
  3. pos = RunExe("MyApp", "Форма125 base.dat")
  4. RichTextBox2.AppendText("Найдено в " & pos)
  5. Loop Until pos <> ""
В результате получается:
Найдено в Раздел 2 Раздел 4 Раздел 5 Подраздел 1
и так далее, то есть я захватываю только Раздел 2 и всё, остальные результаты просто выводятся на экран и соответственно в переменной pos остается первая найденная запись "Раздел 2". Решив, что цикл выбран не верно пробую другой
Листинг программы
  1. Dim pos As String
  2. For Each pos In RunExe("MyApp", "Форма125 base.dat")
  3. If pos <> Nothing Then
  4. RichTextBox2.AppendText("Найдено в " & pos)
  5. End If
  6. Next
И тут вообше ужас В результате
Найдено в Р Найдено в а Найдено в з Найдено в д Найдено в е Найдено в л Найдено в Найдено в 2 Найдено в Р Найдено в а ,,,,,
И так далее. Но при этом выводится, что найдено во всех разделах и подразделах но в переменной pos не полная строка, а только буквы этой строки. Фунуцмя RunExe(), для работы с внешними приложениями используется из этой темы Помогите пожалуйста как правильно оформить цикл. Спасибо.

Решение задачи: «Как правильно написать цикл обработки результатов от внешнего приложения?»

textual
Листинг программы
  1.         Dim pos As String
  2.         pos = RunExe("MyApp", "Форма125 base.dat").ToString()
  3.         Dim Str() As String = pos.Split(vbCrLf) 'возвращаем массив строк, делим входящую строку знаком каретки
  4.         For Each St As String In Str()
  5.             If St.Lenght > 0 Then
  6.                 RichTextBox2.AppendText("Найдено в " & St)
  7.             End If
  8.         Next

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы