По заданию я читаю данные из одного файла, обрабатываю их и записываю в другой файл.Обработка заключается в поиске записи действительных чисел с нулевой дробной частью, эти числа должны быть записаны в другой файл.Пример, 123.000 - запись, 12b.0 - не запись
И эта программа работает с OpenFileDialog, но не работает с My.Computer.FileSystem
Я попытался создать разделенный массив с помощью vbnewline-separator, но это не помогло.Когда я построчно выполняю отладку, и программа достигает нужного числа (на входе 123.0), флаг 1 не учитывается, поэтому число не передается в результате
Try
content = My.Computer.FileSystem.ReadAllText(fileName)
Catch ex As Exception
MsgBox("Error:" & vbCrLf & vbCrLf & ex.Message)
End Try
End Sub
Sub writeFile(ByVal fileName As String, ByRef content As String)
Try
My.Computer.FileSystem.WriteAllText(fileName, content, False)
Catch ex As Exception
MsgBox("Error")
End Try
End Sub
Sub ch(ByVal Str As String, ByRef Result As String)
Dim k, i, m, flag1, flag2 As Integer
Result = ""
k = Str.IndexOf(".", 1)
m = Str.Length - 1
If k <> -1 Then
flag1 = 0
flag2 = 0
For i = 0 To k - 1
If Str.Substring(i, 1) >= "0" And Str.Substring(i, 1) <= "9" Then
flag1 = flag1 + 1
Else
Exit For
End If
Next
If flag1 = k Then
For i = k + 1 To m
If Str.Substring(i, 1) = "0" Then
flag2 = flag2 + 1
Else
Exit For
End If
Next
Else
End If
If flag2 = m - k And flag2 <> 0 Then
Result = Str
Else
End If
Else
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim line, line2, path, path2, res, temp As String
temp = ""
line = ""
line2 = ""
path = ""
path2 = ""
res = ""
path = TextBox1.Text
path2 = TextBox2.Text
readFile(path, line)
TextBox3.Text = CStr(line)
Dim mass = line.Split(CChar(vbNewLine))
For i As Integer = 0 To UBound(mass)
ch(mass(i), temp)
line2 = line2 + temp
Next
TextBox4.Text = line2
writeFile(path2, line2)
End Sub
Ввод: 123
123.
123.0
123.0a0
123.000
12g.00
(6 строк без пробелов в окончаниях) Вывод: пустой файл