x871kx6167ss7 Skrevet 14. mars 2004 Del Skrevet 14. mars 2004 Jeg skal lage et program som skal gjøre mye av det samme om og om igjen. If txttext1.Text = "a" Or txttext1.Text = "A" Then en = "alpha" ElseIf txttext1.Text = "b" Or txttext1.Text = "B" Then en = "Bravo" ElseIf txttext1.Text = "c" Or txttext1.Text = "C" Then en = "Charlie" ElseIf txttext1.Text = "cd" Or txttext1.Text = "D" Then en = "Delta" osv. Jeg har mange textbokser og alle skal gjøre det samme. Trenger jeg å skrive med både stor og liten bokstav? Lenke til kommentar
Jonas Skrevet 15. mars 2004 Del Skrevet 15. mars 2004 (endret) Select Case txttext1.Text Case "a" txttext1.Text = "alpha" Case "b" txttext1.Text = "bravo" Case "c" txttext1.Text = "charlie" Case Else txttext1.Text = "ukjent bokstav" End Select Edit: litt lettere måte Edit2: du kan jo gjøre om alle bokstavene til småe før koden utføres Endret 15. mars 2004 av jonas22282460 Lenke til kommentar
kaffenils Skrevet 15. mars 2004 Del Skrevet 15. mars 2004 Du kan heller lage en sub rutine som du kaller fra f.eks. Change eller Validate. private sub txtFelt_Change() call ValidateField() end sub sub ValidateField() select case ucase(me.ActiveControl) case "A" me.en="Alpha" case "B" me.en="Bravo" case "C" me.en="Charlie" case "D" me.en="Delte" end select end sub Hva du gjør med variabelen "en" ser jeg ikke ut fra kodeeksempelet ditt. Mulig det er et felt som heter "en" og at dette settes til Alpha hvis det er A, Bravo ved B osv. Det er dette jeg har anntatt. Lenke til kommentar
GeirGrusom Skrevet 15. mars 2004 Del Skrevet 15. mars 2004 Lag en array, (Husker ikke om man kan sette en array sånn i VB6, men uansett:) Dim arr() As String Public Sub FillArray() arr = {"Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", _ "India", "Juliette", "Kilo", "Mike", "November", "Oscar", "Papa", "Quebec", _ "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whisky", "X-Ray", "Yankee",_ "Zulu", "Ærlig", "Østen", "Åse"} End Sub Public Function GetCharacterName(Char As String * 1) As String Dim C As Integer C = Asc(Char) If (c >= Asc("a") And c <= Asc("z")) Or (c >= Asc("A") And c <= Asc("Z")) Then Let GetCharacterName = arr(c - Asc("a")) ElseIf C = Asc("Æ") Or C = Asc("æ") Then Let GetCharacterName = arr(25) ElseIf C = Asc("Ø") Or C = Asc("ø") Then Let GetCharacterName = arr(26) ElseIf C = Asc("Å") Or C = Asc("å") Then Let GetCharacterName = arr(27) End If End Function Lenke til kommentar
aadnk Skrevet 15. mars 2004 Del Skrevet 15. mars 2004 (endret) I VB6 må man bruke funksjonen Array for å raskt fylle inn en array. Dim arr As Variant Public Sub FillArray() arr = Array("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", _ "India", "Juliette", "Kilo", "Mike", "November", "Oscar", "Papa", "Quebec", _ "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whisky", "X-Ray", "Yankee", _ "Zulu", "Ærlig", "Østen", "Åse") End Sub Koden kunne f.eks blitt omskrevet til dette: Public Function GetCharacterName(char As String) As String Dim lElementIndex As Long lElementIndex = Asc(UCase(char)) - vbKeyA If lElementIndex + vbKeyA = Asc("Æ") Then lElementIndex = vbKeyZ + lElementIndex - Asc("Æ") If lElementIndex + vbKeyA = Asc("Ø") Then lElementIndex = vbKeyZ + lElementIndex - Asc("Ø") + 1 If lElementIndex + vbKeyA = Asc("Å") Then lElementIndex = vbKeyZ + lElementIndex - Asc("Å") + 2 If lElementIndex < LBound(arr) Or lElementIndex > UBound(arr) Then Exit Function GetCharacterName = arr(lElementIndex) End Function Endret 15. mars 2004 av aadnk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå