как найти пропущенную строку "{" "}" - PullRequest
0 голосов
/ 01 января 2019

Я хочу создать такую ​​программу, как Missing Bracket Finder, и я делаю это, но я хочу, чтобы программа сообщала мне, в какой строке отсутствует {или}, я совершенно новичок, извините за мой плохой английский.

Это мой код:

Public Class Form1

    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
        TextBox1.Text = OpenFileDialog1.FileName
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If System.IO.File.Exists(OpenFileDialog1.FileName) Then
            MsgBox("Number '{':" & System.IO.File.ReadAllText(OpenFileDialog1.FileName).Count(Function(x) x = "{") & "    " & "Number '}':" & System.IO.File.ReadAllText(OpenFileDialog1.FileName).Count(Function(x) x = "}"), MsgBoxStyle.OkOnly, "Info")
        Else
            MsgBox(TextBox1.Text & vbNewLine & "File not found." & vbNewLine & "Please verify the correct file name was given.", MsgBoxStyle.Exclamation, "Open")
        End If
    End Sub

End Class

1 Ответ

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

да привет, это простой трюк, распространенный и используемый везде в этих программах и отладчиках.Вы просто устанавливаете счетчик для каждого типа фигурных скобок, добавляете 1, когда он '{', и вычитаете один в противоположном направлении.Линия, которую вы не получите, но приблизительное решение будет работать, как только вы достигнете отрицательных значений, вы всегда должны получить 0 в конце и никогда не иметь отрицательных значений.В любом случае, если вам нужна строка, просто пустые места.Подсчитайте пустые места и определите количество фигурных скобок, но это не рекомендуется.

...