Avatar billede kresten112 Nybegynder
25. juli 2003 - 11:57 Der 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...
Avatar billede medions Nybegynder
25. juli 2003 - 12:06 #1
If CInt(var1) = CInt(var2) Then
  Response.Write("De er ens")
Else
  Response.Write("De er ikke ens!")
End If

//>Rune
Avatar billede -kris- Praktikant
25. juli 2003 - 12:07 #2
Hej - jer er ikke en ørn til programmering, men kan man ikke skrive:

If var1 = var2 then
Response.write "De er ens"
Else
Reponse.write "De er forskellige"
End if
Avatar billede nmh Nybegynder
25. juli 2003 - 12:09 #3
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".
Avatar billede medions Nybegynder
25. juli 2003 - 12:11 #4
nmh> Det er da præcist lige det jeg har svaret???!!!!

//>Rune
Avatar billede nmh Nybegynder
25. juli 2003 - 12:14 #5
Ja, men mens jeg skrev kunne jeg jo ikke se, at du havde svaret. Det kom jo først frem, da jeg indsendte mit svar. Det er jo noget der ofte sker.
Avatar billede nmh Nybegynder
25. juli 2003 - 12:16 #6
Ellers ville jeg da aldrig have skrevet det som et svar.
Avatar billede medions Nybegynder
25. juli 2003 - 12:19 #7
Fair nok :o)
Glemmer hele tiden det ik' er alle der et Pro. abb. (her kan man se om der er andre der har svaret i mellemtiden!)

//>Rune
Avatar billede nmh Nybegynder
25. juli 2003 - 12:22 #8
Det vil jeg glæde mig til. Jeg får nok et pro. abb. i næste måned. Jeg har faktisk oplevet dette her en del gange.
Avatar billede medions Nybegynder
25. juli 2003 - 12:23 #9
;o)

//>Rune
Avatar billede medions Nybegynder
25. juli 2003 - 12:25 #10
kresten112> Hvad finder du ud af?

//>Rune
Avatar billede kresten112 Nybegynder
25. juli 2003 - 12:33 #11
Hej med jer...

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??
Avatar billede medions Nybegynder
25. juli 2003 - 12:35 #12
Det er din Request.Form() der er problemet!
Det er en String værdi når den bliver modtaget!

CInt() Betyder Convert to Integer

Altså funktionen konvetere fra en Tekst værdi til en Talværdi!

Man kan ikke sammenligne en Tekstværdi med en Talværdi og omvent!

//>Rune
Avatar billede kresten112 Nybegynder
25. juli 2003 - 12:41 #13
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....
Avatar billede medions Nybegynder
25. juli 2003 - 12:43 #14
Ja, du kan oxo bruge forskellig fra (<>) her...

//>Rune
Avatar billede nmh Nybegynder
25. juli 2003 - 12:44 #15
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"
Avatar billede nmh Nybegynder
25. juli 2003 - 12:49 #16
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.
Avatar billede kresten112 Nybegynder
25. juli 2003 - 19:03 #17
Hej Rune og mnh

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!

Kresten
Avatar billede medions Nybegynder
26. juli 2003 - 10:51 #18
Anytime
Thx 4 Poinz

//>Rune
Avatar billede nmh Nybegynder
26. juli 2003 - 10:59 #19
Det var så lidt.
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