Программа компилируется и "зависает" намертво при запуске - Visual Basic .NET
Формулировка задачи:
Здравствуйте! Работаю в VS 2013 на VB.net.
Считываю файл в виде таблицы в ListBox. На одном из этапов обработки мне нужно удалить лишние пробелы в строке.
Завожу функцию в классе:
Затем использую её в цикле:
Компиляция проходит успешно, однако при запуске окно приложения виснет намертво. В чем может быть причина?
Основная задача приложения - выделить 5-й столбец таблицы и сохранить его как строку с числами, с разделителем "." целой и дробной части. Прикладываю текст того что есть и скрин последнего рабочего состояния (без функции).
Листинг программы
- Function RemoveSpaces(prob As String) As String
- Do While InStr(prob, " ") <> 0 : prob = Replace(prob, " ", " ") : Loop
- RemoveSpaces = Trim(prob)
- End Function
Листинг программы
- While (EOF <> "True" And sr.Peek() >= 0)
- strLine = sr.ReadLine()
- 'Здесь надо удалить все лишние пробелы
- strLine = RemoveSpaces(strLine)
- s = regexp.Split(strLine)
- 'разбиваю строку на массив и записываю (пока что без выделения 5-го элемента) в другой лист.
- For t = 0 To s.GetUpperBound(0)
- 'If (t Mod 4) = 0 Then
- ListBox2.Items.Add(s(t))
- 'End If
- Next
- If (strLine <> "") Then
- ListBox1.Items.Add(strLine)
- i = i + 1
- Else
- EOF = "True"
- End If
- End While
Решение задачи: «Программа компилируется и "зависает" намертво при запуске»
textual
Листинг программы
- Dim res As String = "" 'создаем пустую строковую переменную
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' по нажатию кнопки
- Dim ms() As String = Split(ListBox1.Items.Item(0), " ") ' пилим первую строку на пробелы
- res = ms(6) ' забираем символ из пятого столбца (дело в том, что количество пробелов в первой строке и всех остальных - различается)
- For i = 1 To ListBox1.Items.Count - 1 ' перебираем все строки в listbox1, кроме первой
- Dim s() As String = Split(ListBox1.Items.Item(i), " ") ' каждую строку из listbox тоже пилим на пробелы
- res = res & Replace(s(10), ",", ".") & " " ' плюсуем к строке элемент пятого столбца (с заменой , на .) и дописываем к нему пробел
- Next
- Try ' отлов исключения, если, к примеру не будет хватать прав на запись в каталог
- IO.File.WriteAllText(Application.StartupPath & "\res.txt", res, System.Text.Encoding.Default) ' запись результата в res.txt, который лежит в папке с запускаемым .exe
- Catch ex As Exception
- MsgBox(ex.Message) 'в случае исключения - вывод тескта исключения
- End Try
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д