Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: KomentoTulkki ala AdeRide

AdeRide [12.12.2004 03:14:43]

#

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 Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta