Gå til innhold

Skrive ting om og om og om og om igjen


Anbefalte innlegg

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
Videoannonse
Annonse

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 av jonas22282460
Lenke til kommentar

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

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

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 av aadnk
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...