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 Sub
Ilmeisesti 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 Sub
strNumbers-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.