x871kx6167ss7 Skrevet 14. mars 2004 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?
Jonas Skrevet 15. mars 2004 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
kaffenils Skrevet 15. mars 2004 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.
GeirGrusom Skrevet 15. mars 2004 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
aadnk Skrevet 15. mars 2004 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
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å