Программа компилируется и "зависает" намертво при запуске - Visual Basic .NET

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

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

Здравствуйте! Работаю в VS 2013 на VB.net. Считываю файл в виде таблицы в ListBox. На одном из этапов обработки мне нужно удалить лишние пробелы в строке. Завожу функцию в классе:
Листинг программы
  1. Function RemoveSpaces(prob As String) As String
  2. Do While InStr(prob, " ") <> 0 : prob = Replace(prob, " ", " ") : Loop
  3. RemoveSpaces = Trim(prob)
  4. End Function
Затем использую её в цикле:
Листинг программы
  1. While (EOF <> "True" And sr.Peek() >= 0)
  2. strLine = sr.ReadLine()
  3. 'Здесь надо удалить все лишние пробелы
  4. strLine = RemoveSpaces(strLine)
  5. s = regexp.Split(strLine)
  6. 'разбиваю строку на массив и записываю (пока что без выделения 5-го элемента) в другой лист.
  7. For t = 0 To s.GetUpperBound(0)
  8. 'If (t Mod 4) = 0 Then
  9. ListBox2.Items.Add(s(t))
  10. 'End If
  11. Next
  12. If (strLine <> "") Then
  13. ListBox1.Items.Add(strLine)
  14. i = i + 1
  15. Else
  16. EOF = "True"
  17. End If
  18. End While
Компиляция проходит успешно, однако при запуске окно приложения виснет намертво. В чем может быть причина? Основная задача приложения - выделить 5-й столбец таблицы и сохранить его как строку с числами, с разделителем "." целой и дробной части. Прикладываю текст того что есть и скрин последнего рабочего состояния (без функции).

Решение задачи: «Программа компилируется и "зависает" намертво при запуске»

textual
Листинг программы
  1.     Dim res As String = "" 'создаем пустую строковую переменную
  2.     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' по нажатию кнопки
  3.         Dim ms() As String = Split(ListBox1.Items.Item(0), " ") ' пилим первую строку на пробелы
  4.         res = ms(6) ' забираем символ из пятого столбца (дело в том, что количество пробелов в первой строке и всех остальных - различается)
  5.         For i = 1 To ListBox1.Items.Count - 1 ' перебираем все строки в listbox1, кроме первой
  6.             Dim s() As String = Split(ListBox1.Items.Item(i), " ") ' каждую строку из listbox тоже пилим на пробелы
  7.             res = res & Replace(s(10), ",", ".") & " " ' плюсуем к строке элемент пятого столбца (с заменой , на .) и дописываем к нему пробел
  8.         Next
  9.  
  10.         Try ' отлов исключения, если, к примеру не будет хватать прав на запись в каталог
  11.             IO.File.WriteAllText(Application.StartupPath & "\res.txt", res, System.Text.Encoding.Default) ' запись результата в res.txt, который лежит в папке с запускаемым .exe
  12.         Catch ex As Exception
  13.             MsgBox(ex.Message) 'в случае исключения - вывод тескта исключения
  14.         End Try
  15.     End Sub

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


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

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

6   голосов , оценка 3.667 из 5

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

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

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