Imports System.IO
Public Class ReadAndInterpret
'File dialog part
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
OpenFileDialog1.ShowDialog()
TextBox1.Text = OpenFileDialog1.FileName
End Sub
'Set up the interpretator
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim ClowsReader As New StreamReader(TextBox1.Text)
Do While ClowsReader.Peek() <> -1
Dim TextLine As String
TextLine = ClowsReader.ReadLine() & vbNewLine
'The function/variable interpreter part
If TextLine.Contains("var") Then
Dim CheckVarName As String = TextLine.Split(" ")(1)
Dim CheckVarVal As String = TextLine.Split(CheckVarName & "=")(1)
ElseIf TextLine.Contains("MsgBox") Then
Dim CheckLine As String = TextLine.Split(">")(1)
MsgBox(CheckLine)
If CheckLine.Contains(CheckVarName) Then
MsgBox(CheckVarName)
End If
End If
Loop
End Sub
End Class
Also das ist der Code für meine Skriptsprache Dolmetscher ich mache in VB.NET. Es gibt nur MsgBox und variable Funktion (noch nicht fertig.) In diesem Code einen Fehler von CheckVarName gibt nicht definiert ist, obwohl esLokale Variable ist nicht definiert - VB.Net
definiert istDim CheckVarName As String = TextLine.Split(" ")(1)
im Code.
Weiß jemand warum, warum CheckVarName nicht definiert ist? (Es gibt den Fehler in diesem Teil des Codes):
If CheckLine.Contains(CheckVarName) Then
MsgBox(CheckVarName)
End If
Programmierung 101 - Variable Umfang https://msdn.microsoft.com/en-us/library/1t0wsc67.aspx Ich möchte nicht negativ sein, aber vielleicht sollten Sie vollständig verstehen, wie eine Sprache funktioniert, bevor Sie einen Sprachinterpreter schreiben – Steve
Die richtige Einrückung würde Ihnen helfen zu sehen, dass Sie 'CheckVarName' in einem anderen Block definiert haben (der erste Teil des' If'). –
'obwohl es definiert ist 'Aber es ist * innerhalb des if-Blocks * definiert. Daher * ist es für den else-Block * nicht sichtbar. Bitte ** lernen Sie die Grundlagen **. –