Avatar billede blueeye97 Nybegynder
17. september 2003 - 14:59 Der er 9 kommentarer og
2 løsninger

lave streng om til tal

Jeg har "lånt" følgende fra et andet indlæg her i eksperten men det virker ikke helt som det skal. Jeg kan ikke selv regne ud hvad der er galt. Det jeg er interesseret i, er en funktion der laver en streng om til et tal. F.eks.

100A = 100
A100 = 100
A1A1 = 11
1AAA = 1

Hvis jeg bruger eksemplet bliver 2A til 20 !!

varstr = Text2
varstr = Replace(varstr, ".", "")
varstr = Replace(varstr, "-", "")

For i = 1 To Len(varstr)
    If Asc(Mid(varstr, i, 1)) > 47 And Asc(Mid(varstr, i, 1)) < 58 Then
        varTal = varTal & Mid(varstr, i, 1)
        tal = True
    ElseIf tal = True Then
        varTal = varTal & ";"
        tal = False
    End If
Next
arrTal = Split(varTal, ";")
For j = 0 To UBound(arrTal)
    sumtal = sumtal & Val(arrTal(j))
Next
Text31 = sumtal
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:02 #1
Jeg legede lige lidt mere med det. Det ser ud til at hvis strengen afsluttes med et bogstav, bliver det lavet omtil et nul
Avatar billede medions Nybegynder
17. september 2003 - 15:06 #2
strStreng = "123"
intTal = CInt(strStreng)

//>Rune
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:07 #3
Arj... ka det være så nemt... ? ;o))
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:09 #4
Prøvede lige :

strStreng = Text2.Text '"123"
intTal = CInt(strStreng)

Type mismatch error !!
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:11 #5
Medion. Dit eksempel virker jo ikke hvis der er bogstaver i strengen...
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:14 #6
Jeg har lagt følgende i starten :

varstr = Text2.Text
If IsNumeric(Right(varstr, 1)) = False Then
End If

Det giver jo en fejl hvis sidste karakter i strengen er alfanumerisk. Hvordan fjerner jeg så sidste karakter i varstr ? Det vil jo afhjælpe problemet...
Avatar billede medions Nybegynder
17. september 2003 - 15:14 #7
Nej, så kan det jo heller aldrig blive til en integer hvis der er bogstaver i :-D

Prøv sådan her:

Dim strStreng As String
Dim intTal As Integer
strStreng = Text2.Text '"123"
intTal = Int(strStreng)

//>Rune
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:18 #8
Har løst det selv.

varstr = Text2.Text
If IsNumeric(Right(varstr, 1)) = False Then
varstr = Left(varstr, Len(varstr) - 1)
End If
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:19 #9
Rune, Det var netop meningen at der godt måtte være bogstaver i den oprindelige streng. Jeg villle bare snuppe tallene. :o)
Avatar billede blueeye97 Nybegynder
17. september 2003 - 15:27 #10
Vi deler point i porten... ;o)
Avatar billede medions Nybegynder
17. september 2003 - 15:46 #11
Fair nok ;o)
Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester