Mulla on formilla kaksi tekstikenttää. Toiseen pitäis laittaa tekstiä ja sit painaa commandbuttonii niin se muuttais sen tekstin numeroiks ja merkeiks esim. o=1 p=6 jne...Vähän ehkä selitetty epäselvästi...
Muuntoperiaatetta voisit vielä selventää, mutta joka tapauksessa merkin korvaaminen toisella tapahtuu Replace-funktiolla.
Se on hyvä, että ite jaksat näitä paljon miettiä. Kato vaikka VBasic opasta osa 4 esimerkkiprojekti 1:stä. Numerot merkeiksi ja toisinpäin onnaa vaikka taulukoilla taulu1 ja taulu2, joissa toisessa on kirjaimet ja toisessa vastaavat numerot.
EDIT: Tai sit kuten yllä.
Replace-funktio lienee tässä kätevämpi, koska VAL muuttaisi numeroiksi vain merkkijonon, joka sisältää numeroita.
Joten vaikka VAL("op") palauttaisi nollan.
Voithan tietysti käyttää kirjainten ascii koodeja:
Eli tyyliin:
Private Sub Command1_Click()
Dim iCnt As Integer
Text2.Text = ""
For iCnt = 1 To Len(Text1.Text)
Text2.Text = Text2.Text & Asc(Mid(Text1.Text, iCnt, 1))
Next
End SubIlmeisesti on kuitenkin kyse siitä, että Zero88 haluaa itse määrittää, mikä kirjain muutetaan miksikin numeroksi.
No sen saa tapahtumaan esim kahdella muuttujalla:
Function TransferCharacters(ByVal strText As String) As String
Dim strStrings As String
Dim strNumbers As String
Dim iPlace As Integer
Dim strBuild As String
Dim iCnt As Integer
strStrings = "A B C D E F G H I J O K L M N O P Q R S T U V W Y Å Ä Ö a b c d e f g h i j i l m n o p q r s t u v w y å ä ö 1 2 3 4 5 6 7 8 9 "
strNumbers = "01020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364"
For iCnt = 1 To Len(strText)
' Pakotetaan välilyönti olemaan tietty paikka koska välilyöntiä on käytetty
' tasoittavana välimerkkinä
If Mid(strText, iCnt, 1) = Chr(20) Then
iPlace = 20
Else
iPlace = InStr(1, strStrings, Mid(strText, iCnt, 1), 1)
End If
strBuild = strBuild & Mid(strNumbers, iPlace, 2)
Next
TransferCharacters = strBuild
End Function
Private Sub Command1_Click()
Text2.Text = TransferCharacters(Text1.Text)
End SubstrNumbers-muuttujaan sitten numeropareina ne numerot millä haluaa kunkin kirjaimen korvattavan.
Edellinen koodi on sämpylätavaraa, joten virheenkäsittely on sitten paikallaan sillä erikoismerkit kaataa koodin. InStr palauttaa 0:n jos merkkiä ei löydy ja Mid-functio kaataa softan koska se ei hyväksy 0:aa käytettäväksi indeksiksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.