Avatar billede rask2 Nybegynder
26. september 2006 - 13:02 Der er 13 kommentarer og
2 løsninger

string to integer

Jeg har en streng som indeholder både tal og karakterer.
fx ku987
tallen vil jeg gerne have konverteret til en int for at teste om værdien er større end en anden. Jeg har prøvet:

dim x as integer
dim y as string
dim y1 as string

y = ku987

y1 = right(y,3)

x = Cint(y1)

men får fejlen: Type mismatch

nogen der kan hjælpe?
Avatar billede compilos Nybegynder
26. september 2006 - 13:25 #1
Hvad sker der hvis du gør sådan her !

y1 = right(y,2)
Avatar billede rask2 Nybegynder
26. september 2006 - 13:29 #2
denne funktion virker fint nok. Det er selve konverteringen der hænger, men:

y1 = right(y,2)

"y1 = 87"
Avatar billede fobian Nybegynder
26. september 2006 - 13:44 #3
Du mangler at skrive anførselstegn foran og efter ku987. Så den tror at det er en variabel den skal læse værdien af.

Så - hvis du skriver y = "ku987", så skulle det virke. :o)
Avatar billede rask2 Nybegynder
26. september 2006 - 13:48 #4
ok det kunne også misforståes.

Men fobian det jeg mener med 
y = ku987 er at y indeholder denne streng. Det er ikke noget jeg prøver at lægge ind i den for så er det korrekt at "ku987" skal anvendes
Avatar billede fobian Nybegynder
26. september 2006 - 13:56 #5
Det virker ellers hos mig, så jeg regnede med at det bare var det. - Du kan evt. prøve at gange Cint(y1) med 1.
Avatar billede thesurfer Nybegynder
26. september 2006 - 13:57 #6
Hvis dette ikke virker:

dim x as integer
dim y as string
dim y1 as string

y = "ku987"

y1 = right(y,3)

x = Cint(y1)

prøv med:

dim x as integer
dim y as string
dim y1 as string

y = "ku987"

y1 = CStr(right(y,3))

x = CInt(y1)
Avatar billede rask2 Nybegynder
26. september 2006 - 14:27 #7
er forsøgt

Har ellers brugt den før uden problemer
Avatar billede rask2 Nybegynder
26. september 2006 - 14:27 #8
ikke verdens mest komplicerede operation
Avatar billede rask2 Nybegynder
26. september 2006 - 14:29 #9
jeg må prøve noget andet.
Men tak for forsøgene. Smid et svar fobian og thesurfer så deler vi pointene ud for den forgæves arbejdskraft:-)
Avatar billede thesurfer Nybegynder
26. september 2006 - 14:41 #10
Ingen points til mig, tak.. :-)
Avatar billede fobian Nybegynder
26. september 2006 - 14:43 #11
Jeg har lige lavet denne alternative version til dig. Vil kun, ha' point, hvis den virker hos dig :o)

Sub test()
Dim x As Variant
Dim x2 As Integer
Dim y As String
Dim y1 As String
Dim i As Integer

y = "ku987"
x = ""

For i = Len(y) To 1 Step -1
    If IsNumeric(Mid(y, i, 1)) Then
        x = Mid(y, i, 1) & x
    Else
        Exit For
    End If
Next

x2 = x * 1

End Sub
Avatar billede rask2 Nybegynder
26. september 2006 - 14:44 #12
ok
Avatar billede rask2 Nybegynder
26. september 2006 - 14:46 #13
hovsa.
Så ikke du kun ville have point hvis det virkede
Avatar billede rask2 Nybegynder
26. september 2006 - 14:47 #14
har lige kopieret al koden ind i et nyt projekt, og her virker det oprindelige ganske udemærket, så jeg tror jeg har pillet ved noget i det andet projekt som jeg ikke skulle.
Avatar billede rask2 Nybegynder
26. september 2006 - 14:47 #15
men kan ikke lige komme i tanke om noget det kan være
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