it says that
HslSubj = Struktur(PosKt - 1)
is out of range exception unhandled..
but if i delete that i get a new error, which is argument exception.. please help me fix it..
i put my whole code below..
Expand|Select|Wrap|Line Numbers
- Public Class FrMain
- Public KDasar(0 To 9, 0 To 1) As String
- Public Imbuh(0 To 4, 0 To 1) As String
- Public Struktur(0 To 3) As String
- Public DesStruktur(0 To 3) As String
- Private Class KataDasar
- Private pVal As String, pValint As Integer
- Public Property description() As String
- Get
- Return pVal
- End Get
- Set(ByVal value As String)
- pVal = value
- End Set
- End Property
- Public Property groupID() As Integer
- Get
- Return pValint
- End Get
- Set(ByVal value As Integer)
- pValint = value
- End Set
- End Property
- End Class
- Private Class StrukKalimat
- Private pVal As String, pVal2 As Integer
- Public Property teks() As String
- Get
- Return pVal
- End Get
- Set(ByVal value As String)
- pVal = value
- End Set
- End Property
- Public Property IDstring() As String
- Get
- Return pVal2
- End Get
- Set(ByVal value As String)
- pVal2 = value
- End Set
- End Property
- End Class
- Sub InisialisasiDB()
- Imbuh(0, 0) = "men"
- Imbuh(1, 0) = "kan"
- Imbuh(2, 0) = "mem"
- Imbuh(3, 0) = "di"
- Imbuh(4, 0) = "ber"
- Imbuh(0, 1) = "0"
- Imbuh(1, 1) = "1"
- Imbuh(2, 1) = "0"
- Imbuh(3, 1) = "0"
- Imbuh(4, 1) = "0"
- KDasar(0, 0) = "dengar"
- KDasar(1, 0) = "simpan"
- KDasar(2, 0) = "belanja"
- KDasar(3, 0) = "baca"
- KDasar(0, 1) = "1"
- KDasar(1, 1) = "1"
- KDasar(2, 1) = "1"
- KDasar(3, 1) = "1"
- KDasar(4, 0) = "sekarang"
- KDasar(5, 0) = "dipasar"
- KDasar(6, 0) = "hariini"
- KDasar(7, 0) = "dilemari"
- KDasar(8, 0) = "siangini"
- KDasar(4, 1) = "3"
- KDasar(5, 1) = "3"
- KDasar(6, 1) = "3"
- KDasar(7, 1) = "3"
- KDasar(8, 1) = "3"
- KDasar(9, 0) = "mainan"
- KDasar(9, 1) = "0"
- Struktur(0) = "Subyek"
- Struktur(1) = "Predikat"
- Struktur(2) = "Objek"
- Struktur(3) = "Keterangan"
- DesStruktur(0) = "Subjek berupa kata benda (nomina)"
- DesStruktur(1) = "Predikat berupa kata kerja (verba)"
- DesStruktur(2) = "Objek berupa kata benda (nomina)"
- DesStruktur(3) = "Keterangan berupa keterangan waktu atau tempat"
- End Sub
- Function StateMachine1(ByVal kal As String) As String
- Dim HslString As String, HslKet As String, HslPred As String, HslSubj As String
- Dim HslObjek As String, hslImbuhan As String
- Dim pch() As String = Split(kal, " ")
- Dim A As Integer, e As Integer = -1, u As Integer, k As Integer, PosKt As Integer
- Dim PosKt1 As Integer
- For u = 0 To UBound(pch)
- For A = 0 To UBound(Imbuh)
- e = InStr(1, pch(u), Imbuh(A, 0), CompareMethod.Text)
- If (e > 0) And (e < Len(pch(u)) - 3) Then
- If Imbuh(A, 1) = "0" Then hslImbuhan = hslImbuhan & Imbuh(A, 0) & "!"
- ElseIf e <> 0 Then
- If e = Len(pch(u)) - (Len(Imbuh(A, 0)) + 1) Then
- If Imbuh(A, 1) = "1" Then hslImbuhan = hslImbuhan & Imbuh(A, 0) & "!"
- End If
- End If
- Next A
- Next u
- For k = 1 To 2
- For u = 0 To UBound(pch)
- For A = 0 To UBound(KDasar)
- e = InStr(1, pch(u), KDasar(A, 0), CompareMethod.Text)
- If e > 0 Then
- If KDasar(A, 1) = "3" Then
- HslKet = Struktur(CInt(KDasar(A, 1)))
- PosKt1 = u
- ElseIf KDasar(A, 1) = "1" Then
- HslPred = Struktur(CInt(KDasar(A, 1)))
- PosKt = u
- End If
- End If
- Next A
- Next u
- Next k
- Lanjut:
- If PosKt1 = 0 Then
- PosKt = PosKt - 1
- End If
- HslObjek = Struktur(PosKt + 1)
- HslSubj = Struktur(PosKt - 1)
- If PosKt1 = 0 Then
- HslString = HslKet & "-" & HslSubj & "-" & HslPred & "-" & HslObjek & "#" & Mid(hslImbuhan, 1, Len(hslImbuhan) - 1)
- Else
- HslString = HslSubj & "-" & HslPred & "-" & HslObjek & "-" & HslKet & "#" & Mid(hslImbuhan, 1, Len(hslImbuhan) - 1)
- End If
- StateMachine1 = HslString
- End Function
- Function BaseParsing(ByVal kt As String) As String
- Dim A As Integer, e As Integer = 0
- BaseParsing = kt
- For A = 0 To UBound(KDasar)
- e = InStr(1, kt, KDasar(A, 0), CompareMethod.Text)
- If e > 0 Then
- BaseParsing = KDasar(A, 0)
- Exit For
- End If
- Next A
- End Function
- Sub StateMachine2()
- Dim Wparts() As String = Split(txinput.Text, " ")
- Dim state As Integer = 0
- While True
- ' command = next command
- Select Case (state)
- Case 0
- If (Command.Equals("USER")) Then
- ' username = argument;
- state = 1
- ElseIf (Command.Equals("QUIT")) Then
- state = 4
- Else
- Error ("Unknown: " + Command())
- ' break()
- End If
- Case 1
- If (Command.Equals("PASS")) Then
- ' If (valid(username, argument)) Then
- ' state = 2
- ' Else
- ' Error ("Unauthorized")
- ' state = 3
- ' End If
- Else
- Error ("Unknown: " + Command())
- Exit While
- End If
- End Select
- End While
- End Sub
- Public Class SingleObjClass
- ' private SingleObjClass obj = new SingleObjClass()
- Private SingleObjClass()
- ' public SingleObjClass.getInstance()
- ' return obj;
- End Class
- Private Sub FrMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Call InisialisasiDB()
- LS1A.Items.Clear()
- LS1B.Items.Clear()
- LS2.Items.Clear()
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim tmpRes As String = StateMachine1(LCase(txinput.Text))
- Dim chnk1() As String = Split(tmpRes, "#")
- Dim chnk2() As String = Split(chnk1(0), "-")
- Dim chnk3() As String = Split(chnk1(1), "!"), j As Integer
- Dim ptg() As String = Split(LCase(txinput.Text), " ")
- LS1A.Items.Clear()
- LS1B.Items.Clear()
- LS2.Items.Clear()
- For j = 0 To UBound(chnk2)
- LS2.Items.Add(chnk2(j))
- Next
- For j = 0 To UBound(chnk3)
- LS1B.Items.Add(chnk3(j))
- Next
- For j = 0 To UBound(ptg)
- LS1A.Items.Add(BaseParsing(ptg(j)))
- Next
- End Sub
- Private Sub LS2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LS2.SelectedIndexChanged
- Dim j As Integer
- For j = 0 To UBound(Struktur)
- If LS2.Items(LS2.SelectedIndex) = Struktur(j) Then
- LSDP.Text = DesStruktur(j)
- Exit For
- End If
- Next j
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- txinput.Text = ""
- LS1A.Items.Clear()
- LS1B.Items.Clear()
- LS2.Items.Clear()
- LSDP.Clear()
- End Sub
- End Class
thank you so much..