/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Hvordan findes et tal i en streng?
Fra : OleJ


Dato : 20-06-02 09:11

Jeg skal søge efter et tal, som kan have enhver værdi mellem 0 & 999, i en
streng...dvs et wildcard search som kun skal finde decimaltal! Tallet er
omklamret af koloner.
Dernæst skal jeg addere dette tal med 400...hvordan gøres dette?

Mvh OleJ



 
 
Klaus Ambrass (20-06-2002)
Kommentar
Fra : Klaus Ambrass


Dato : 20-06-02 12:26

"OleJ" <olj@sol.dk> wrote in
news:3d118e53$0$220$edfadb0f@dspool01.news.tele.dk:

> Jeg skal søge efter et tal, som kan have enhver værdi mellem 0 & 999, i
> en streng...dvs et wildcard search som kun skal finde decimaltal!
> Tallet er omklamret af koloner.
> Dernæst skal jeg addere dette tal med 400...hvordan gøres dette?
>
> Mvh OleJ
>
>
>

Hvad med:

i = InStr(sInput, "(")
iOutput = Val(Right(sInput, Len(sInput) - i)) + 400

dette virker fint med: "ffd(1234)saf" og "fsd(443234gsdf2fd2)fsdf" men
pas på "fdjsl(342e3)sfd", som giver 342000 pga. e3=1000.




--
Klaus Ambrass

IT - Storstrøms Amt
kam@it.stam.dk

Klaus Ambrass (20-06-2002)
Kommentar
Fra : Klaus Ambrass


Dato : 20-06-02 12:28

"OleJ" <olj@sol.dk> wrote in
news:3d118e53$0$220$edfadb0f@dspool01.news.tele.dk:

> Jeg skal søge efter et tal, som kan have enhver værdi mellem 0 & 999, i
> en streng...dvs et wildcard search som kun skal finde decimaltal!
> Tallet er omklamret af koloner.
> Dernæst skal jeg addere dette tal med 400...hvordan gøres dette?
>
> Mvh OleJ
>
>

Det skulle selvfølge være kolon - ikke parantes.

i = InStr(sInput, ":")
iOutput = Val(Right(sInput, Len(sInput) - i)) + 400

dette virker fint med: "ffd:1234:saf" og "fsd:443234gsdf2fd2:fsdf" men
pas på "fdjsl:342e3:sfd", som giver 342000 pga. e3=1000.

sorry


--
Klaus Ambrass

IT - Storstrøms Amt
kam@it.stam.dk

OleJ (20-06-2002)
Kommentar
Fra : OleJ


Dato : 20-06-02 14:30

Jeg bukker dybt og takker!!!

//OleJ

"Klaus Ambrass" <kam@it.stam.dk> wrote in message
news:Xns92338927045EAambrass@212.88.64.226...
> "OleJ" <olj@sol.dk> wrote in
> news:3d118e53$0$220$edfadb0f@dspool01.news.tele.dk:
>
> > Jeg skal søge efter et tal, som kan have enhver værdi mellem 0 & 999, i
> > en streng...dvs et wildcard search som kun skal finde decimaltal!
> > Tallet er omklamret af koloner.
> > Dernæst skal jeg addere dette tal med 400...hvordan gøres dette?
> >
> > Mvh OleJ
> >
> >
>
> Det skulle selvfølge være kolon - ikke parantes.
>
> i = InStr(sInput, ":")
> iOutput = Val(Right(sInput, Len(sInput) - i)) + 400
>
> dette virker fint med: "ffd:1234:saf" og "fsd:443234gsdf2fd2:fsdf" men
> pas på "fdjsl:342e3:sfd", som giver 342000 pga. e3=1000.
>
> sorry
>
>
> --
> Klaus Ambrass
>
> IT - Storstrøms Amt
> kam@it.stam.dk



Tomas Christiansen (20-06-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 20-06-02 21:30

Klaus Ambrass skrev:
> i = InStr(sInput, ":")
> iOutput = Val(Right(sInput, Len(sInput) - i)) + 400
>
> dette virker fint med: "ffd:1234:saf" og "fsd:443234gsdf2fd2:fsdf"
men

Jeg vil foretrække at bruge CLng i stedet for Val, idet man så bliver
gjort opmærksom på at der er "noget galt" med tallet
"443234gsdf2fd2" - det ER jo ikke et tal!

-------
Tomas


Bjarke Walling Peter~ (20-06-2002)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 20-06-02 22:20

Tomas Christiansen skrev:
> Jeg vil foretrække at bruge CLng i stedet for Val, idet man så bliver
> gjort opmærksom på at der er "noget galt" med tallet
[snip]

Det gør jeg (og MSDN!) også ... i øvrigt kan man bruge IsNumeric(streng) til
at finde ud af om en streng overhovedet kan konverteres til et tal. Så
behøver man ikke at opsætte sin egen fejlrutine.

Mvh. Bjarke



Tomas Christiansen (21-06-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 21-06-02 06:46

Bjarke Walling Petersen skrev:
> Det gør jeg (og MSDN!) også ... i øvrigt kan man bruge
IsNumeric(streng) til
> at finde ud af om en streng overhovedet kan konverteres til et tal.

> behøver man ikke at opsætte sin egen fejlrutine.

Ja. Man skal blot huske på at IsNumeric jo er en generel
tal-genkendelsesfunktion.
Man kan (måske) risikere at den accepterer "noget" som værende et tal,
som den aktuelt brugte konverteringsfunktion IKKE accepterer.
Jeg mener derfor ikke at man kan undgå at opsætte en rutine til
fejlhåndtering.

Eksempel på hvor det "går galt":

Debug.Print IsNumeric("3333333333")
Debug.Print CLng("3333333333")

-------
Tomas


Bjarke Walling Peter~ (21-06-2002)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 21-06-02 11:04

Tomas Christiansen skrev:
> Ja. Man skal blot huske på at IsNumeric jo er en generel
> tal-genkendelsesfunktion.
> Man kan (måske) risikere at den accepterer "noget" som værende et tal,
> som den aktuelt brugte konverteringsfunktion IKKE accepterer.
> Jeg mener derfor ikke at man kan undgå at opsætte en rutine til
> fejlhåndtering.
>
> Eksempel på hvor det "går galt":
>
> Debug.Print IsNumeric("3333333333")
> Debug.Print CLng("3333333333")

Jo, det er rigtigt. Men man kan evt. også checke at længden ikke er over 9
tegn og at der ikke er punktum/komma i (det må jeg tilstå er det jeg plejer
at gøre :) ... men det giver faktisk ikke et pålideligt resultat altid,
f.eks. med "1.333.333.333", som jo godt kan konverteres med CLng.
Hvis man gider kunne man også lave sin helt egen IsLongNumber-funktion
.... men jeg tror du har ret i at en fejlrutine vil være det nemmeste.

Mvh. Bjarke



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste