Joo, tein tässä omiin tarpeiseeni tällaisen pienen komentotulkin ja ajattelin jakaa sen kaikkien ohjelmointiputkalaisten kesken.
Tähän ohjelmaan tarvitsen:
Textbox = txtComm
Textbox = txtParametri
Textbox = txtKomento
CommandButton = cmdAja
Eli tuohon lootaan txtComm syötetään komentojono ja sitten ne komento ja parametri tulevat eroteltuina noihin toisiin lootiin, kun painaa tuota AJA-nappulaa.
Jos koodissa ilmenee ongelmia niin ilmoittakaa niistä joko noihin kommentteihin tai ihan minulle sähköpostiin.
Tuo listaus pitää vain läntätä sinne Visual Basicin koodiosaan.
Visual Basicin koodiosaan
Function CommandInterpreter(object As String)
' Määritellään muutamat muuttujat, joita tarvitaan tunnistamaan parametri
' ja komento toisistaan
Dim Line As String ' Muuttuja kentässä object olevalle tekstille
Dim CommandMark As String ' Muuttuja merkille, joka aloittaa komennon
Dim Space As String ' Muuttuja välimerkille, jolla eroitetaan parametri komennosta
Dim Command As String ' Muuttuja komennolle
Dim Parameter As String 'Muuttuja parametrille
Dim SpacePlace As Integer 'Muuttuja välin paikan tallentamiseen
Dim CommandLen As Integer 'Muuttuja komennon pituudelle
Dim ParameterLen As Integer 'Muuttuja parametrin pituudelle
Dim LineLen As Integer ' Muuttuja koko lauseen pituudelle
' Annetaan arvoja muuttujille joitatarvitaan virheen estoon
CommandMark = "%" ' annettaan muuttujaan merkki, jolla aloitetaan kaikki komennot ohjelmassasi
Space = " " ' annetaan muuttujaan merkki, joka toimii parametrin ja komennon erottimena
Line = object ' määrätään Line -muuttujaan teksti, joka määritellään funktion parametrissä
If Left(Line, 1) = CommandMark Then ' Tunnistetaan komento
' Annetaan muuttujille arvoja
LineLen = Len(Line) ' Lasketaan lauseen pituus muuttujaan LineLen
SpacePlace = InStr(Line, Space) ' Etsitään erottimen paikka muuttujaan SpacePlace
CommandLen = SpacePlace - 2 ' Mitataan komennon pituus
ParameterLen = LineLen - (SpacePlace) ' Mitataan parametrin pituus
' Ratkaistaan komento ja parametri
Command = Mid(Line, 2, CommandLen) ' otetaan komento Line:stä muuttujaan Command
Parameter = Mid(Line, (SpacePlace + 1), ParameterLen) ' otetaan parametri Line:stä
' muuttujaan Parameter
txtParametri.Text = Parameter ' Syötetään parametri tekstikenttään
' voidaan myös laittaa toiseen muuttujaan ( taikuutta )
txtKomento.Text = Command ' Syötetään komento tekstikenttään
' voidaan laittaa myös muuttujaan
GoTo DONE: ' hypätään virheilmoituksen yli DONE -kohtaan
Else ' jos lauseessa ei ole komennon alku niin mennään tänne
GoTo NoCommand: ' hypätään NoCommand -kohtaan
End If
NoCommand:
Print "There's no command in the field" ' tulostetaan virheilmoitus formin vasempaan ylänurkkaan
DONE:
End Function
Private Sub cmdAja_Click()
CommandInterpreter (txtComm.Text) ' kutsutaan CommandInterpreter aliohjelmaa
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.