25. juli 2003 - 11:57Der er
18 kommentarer og 1 løsning
Sammenligning af to variable med en operator
Hej...
Hvis jeg fx. har to variable, der indeholder samme værdi, ex.:
Dim var1, var2 var1 = 45 var2 = 45
- hvor kan jeg så ikke opstille betingelsen:
If var1 <> var2 then Response.write "De er forskellige" Else Reponse.write "De er ens" End if
Scriptet reagerer konsekvent som om, variablerne er forskellige, selv om de indeholder samme tal-værdi...
Hvad er det, der går galt, når jeg stille de to variable op mod hinanden - og kan man overhovedet det, eller er der en anden snedig måde at gøre det på?? Skal pakke variablerne ind i parateser, anførselstegn, eller.....?
Selv om det sikkert er børnelærdom sætter jeg 40 på højkant, fordi jeg har bøvlet med det for længe, og skal videre...
Hvis den ene har værdien "45" og den anden 45 er de ikke ens. Mon ikke det er det der er dit problem. Hvis der er tale om heltal: x=Cint(x) y=Cint(y) så er både x og y af samme type. Hvis du har fået den ene værdi indsendt far en form, vil det være at opfatte som en tekst. Altså var1 er måske så lig "45".
Det lyder MEGET sandsynligt, at problemet er som I beskriver. Den ene variabel ligger i en Session og den anden kommer fra en Form. Desværre er jeg på arbejde nu, og kan ikke teste efter, men der bliver delt point ud ved 17.00-18.00 tiden (hvis det virker). I mellemtiden: Hvad betyder Cint??
Det Må være det... Som sagt, det hele ligger på min computer derhjemme, men hvis forklaringen holder, så var det nok dig Rune, der var først på aftrækkeren... Lige en sidste: Kan jeg også bruge <> operatoren her - det er fordi, HVIS de ikke er ens skal clienten smides tilbage til en anden side, ellers skal der ikke ske noget....
Denne gang testede så jeg efter om du havde svaret inden jeg selv begyndte. ;o) Jeg vil dog lige tillade mig en bemærkning: Hvis en bruger indsender data fra en form, og der ikke er indlagt kontrol af data hos brugeren, er det en god ide at teste, om der overhovedet er indsendt noget, der kan fortolkes som et tal. If IsNumeric(x) then .... end if
Cint("godaw do") vil give en fejl og det vil Cint("100000") også. Clng("100000") konverterer til et "langt heltal"
Imens jeg skrev den forrige kommentar har I skrevet mere.
Kresten> Du skal altså lige passe på inden du bruger Cint. Det er ærgerligt for en bruger, at få en fejl i hovedet, fordi han/hun har kludret med sin indtastning.
I havde fuldstændigt ret, og problemet er løst. Som sagt, da Rune var hurtigst ude får han pointene, men I skal have mange tak begge to. mnh, jeg skal tage det sidste du skrev til efterretning - tak for det!
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.