Avatar billede Slettet bruger
13. februar 2002 - 20:55 Der er 7 kommentarer og
1 løsning

if-sætning fanger ikke tilfælde

Nedenstående if fanger ikke det, den skal - jeg ved med sikkerhed, at arrAreacodes(0,i) på et tidspunkt indeholder 30 (som er en string) og areacode_fra_no indeholder lige netop 30 (fra en input på en tidligere side)

Er der nogen, der kan komme med et forslag til hvorfor det tilfælde ikke bliver fanget?

<kode>
if areacode_fra_no = arrAreacodes(0,i) then
  resultat_fra = 1
elseif areacode_til_no = arrAreacodes(1,i) then
  resultat_til = 1
end if
</kode>
Avatar billede entracore Nybegynder
13. februar 2002 - 21:04 #1
Grunden til at det ikke vil virke er fordi at du nok vil prøve at sammenligne to variabler med forskellige datatyper.

Prøv at skrive følgeden:

if Cint(areacode_fra_no) = Cint(arrAreacodes(0,i)) then
  resultat_fra = 1
elseif Cint(areacode_til_no) = Cint(arrAreacodes(1,i)) then
  resultat_til = 1
end if

Bemærk at hvis "resultat_fra" er NULL eller ikke er et tal opstår der en fejl, fordi at funktionen Cint skal have en talværdi at arbejde med.
Avatar billede Slettet bruger
13. februar 2002 - 21:10 #2
Har også været min tanke, det har jeg prøvet - samt et hav af andre konverteringer - men jeg får "type mismatch".

Kan jeg iøvrigt bruge cint, når der kan risikere at være bogstaver i min variabel og/eller array?
Avatar billede entracore Nybegynder
13. februar 2002 - 21:29 #3
goddess >> Nej du kan ikke anvende Cint hvis det ikke er en numerisk værdi.
Det du kan gøre er at lave en funktion der retunere værdien "0" i tilfælde at din variabel enten er NULL eller en tekststreng. F.eks.

Function cIntNotToNULL(ByVal Param)
    If Param = "" Or IsNumeric(Param) = False Then
          Param = 0
    End If
    cIntNotToNULL = Param
End Function
Avatar billede Slettet bruger
13. februar 2002 - 21:38 #4
men jeg er sådan set ikke interesseret i at vide hvilken type areacode_til_no og arrAreacodes(0,i) er af, men at sammenligne værdien af dem.

Men selvfølgelig, hvis det er et tjek, jeg skal lave først, så må jeg jo gøre det. Jeg kan bare ikke forstå, at det skulle være nødvendigt
Avatar billede entracore Nybegynder
13. februar 2002 - 21:49 #5
du kan ikke sammenligne en variabel (med datatypen integer) med en variabel (der har datatypen char)

Du bliver derfor nød til at konvertere dine variabler til datatypen integer. F.eks. nedenstående eksempel ville ikke udskrive teksten.

firstChar = "10"
secondChar = 10

If firstChar = secondChar Then
    Response.Write "Et eller andet"
End If

Skal det virke skal du skrive:

If Cint(firstChar) = secondChar Then
    Response.Write "Et eller andet"
End If

Håber at det kan bruges...
Avatar billede Slettet bruger
13. februar 2002 - 22:19 #6
jamen det kan det da - jeg har ikke forsøgt endnu, men du har da givet mig lidt overblik :)
Så der er da lidt point til dig - det kan dog være jeg kommer med lidt små spørgsmål senere, men nu går jeg offline.
Avatar billede entracore Nybegynder
13. februar 2002 - 22:21 #7
Mange tak :-)
Avatar billede Slettet bruger
14. februar 2002 - 09:33 #8
Det lykkedes - nu konverterer jeg ikke til noget som helst, men tilgengæld så trimmer jeg dem, og det virker - både med tal og bogstaver i een stor pærevælling :)
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