Tal i en string

Tags:    visual-basic

Guys and Girls,

Jeg har et lille problem jeg håber i kan hjælpe med....

Fra mit program får jeg oplysninger om nøgler. Disse nøgler kan have navnet X56 og XXX289.

Mit problem er at jeg vil trække tallene ud og bruge dem til udregninger. Jeg har prøvet VAL men den værdi vil altid returnere værdien nul. Derefter har jeg prøvet Len og derefter trække antal bogstaver fra men da disse kan variere er det jo ikke løsningen heller....

Er der en måde at løse dette problem på?

Mvh

Christian



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Hvis du er sikker på at tallet altid kommer tilsidst er her en kortere(sjovere) løsning.

<pre>
Dim myInt As Integer
myInt = Val(strReverse(Str(Val(strReverse("xxx256")))))
</pre>

Mvh.,

Jakob Justsen

Guys and Girls,

Jeg har et lille problem jeg håber i kan hjælpe med....

Fra mit program får jeg oplysninger om nøgler. Disse nøgler kan have navnet X56 og XXX289.

Mit problem er at jeg vil trække tallene ud og bruge dem til udregninger. Jeg har prøvet VAL men den værdi vil altid returnere værdien nul. Derefter har jeg prøvet Len og derefter trække antal bogstaver fra men da disse kan variere er det jo ikke løsningen heller....

Er der en måde at løse dette problem på?

Mvh

Christian





Guys and Girls,

Jeg har et lille problem jeg håber i kan hjælpe med....

Fra mit program får jeg oplysninger om nøgler. Disse nøgler kan have navnet X56 og XXX289.

Mit problem er at jeg vil trække tallene ud og bruge dem til udregninger. Jeg har prøvet VAL men den værdi vil altid returnere værdien nul. Derefter har jeg prøvet Len og derefter trække antal bogstaver fra men da disse kan variere er det jo ikke løsningen heller....

Er der en måde at løse dette problem på?

Mvh

Christian


Så fandt jeg løsningen!

måske ikke den bedste men den virker!


<pre>

DIM az AS STRING
DIM ax AS STRING
DIM z AS INTEGER
DIM h AS STRING
DIM holder AS STRING
DIM holder1 AS STRING
DIM alen AS INTEGER
DIM X AS INTEGER

az = "x56"

ax = "xxx289"

z = 111

'--------------


alen = LEN(az)

FOR x = 1 TO alen
h = MID$(az, x, 1)
IF h = "0" OR h = "1" OR h = "2" OR h = "3" OR h = "4" OR h = "5" OR h = "6" OR h = "7" OR _
h = "8" OR h = "9" THEN
holder1 = holder1 + h
ELSE
holder = holder + h
END IF
NEXT
label1.caption= holder1

'-----------
holder = ""
holder1 = ""
h = ""


'------------
alen = LEN(ax)

FOR x = 1 TO alen
h = MID$(ax, x, 1)
IF h = "0" OR h = "1" OR h = "2" OR h = "3" OR h = "4" OR h = "5" OR h = "6" OR h = "7" OR _
h = "8" OR h = "9" THEN
holder1 = holder1 + h
ELSE
holder = holder + h
END IF
NEXT
label2.caption holder1

</pre>

det var så koden jeg har valgt at prænsentere resultatet i en label, nu kan du bruge det til udregning!

-Thomas




[Redigeret d. 19/09-02 19:59:17 af Thomas Christensen]



Hvis du er sikker på ...


COOL. Jeg kan godt li' din måde at tænke på. Det kan vi alle lære af.

Software is here and now but rock and roll is forever.



Hvorfor skal der så meget ekstra på???
Val(StrReverse(Str(Val(StrReverse("xxx256")))))

Hvorfor er det ikke nok at skrive:
StrReverse(Val(StrReverse("xxx256")))

Hvad skal alle de ekstra ting på for???



t