Avatar billede troelsm Nybegynder
01. februar 2008 - 17:16 Der er 5 kommentarer og
1 løsning

Instr returnere 1 selvom værdi ikke er der?

Hejsa
Jeg har følgende
MaxValg = "RTOPXZ"

test = instr(MaxValg, rs("status"))   

som er i et loop
hvis rs("status") fx. er T test = 2 og hvis rs("status") = R så er test = 1
så lang så godt

det som undre mig er at hvis rs("status") = "" så returnere den 1 - og test er derved 1 - hvilket den da ikke burde gøre da værdi jo ikke findes ???
Avatar billede cpufan Juniormester
01. februar 2008 - 18:01 #1
den returnere -1  minus 1
Avatar billede cpufan Juniormester
01. februar 2008 - 18:15 #2
du er nød til at teste på længden af rs("status") først så

if len(rs("status")>0) then
...
else

end if

jeg har testet her:
http://adweb.dk/test/instr.asp

den returner også 1 der. så det er en mindre "bug"
Avatar billede troelsm Nybegynder
01. februar 2008 - 18:19 #3
Det troede jeg også men....

Følgende kode
<%@ Language=VBScript %>
<%

  MaxValg = "RTOPXZ"
  dim test
  dim tal
  test = 0
  tal = 10
  status = "R"
  test = instr(MaXValg, status) 
  response.write "<br>Stauts er sat til R " & test
  response.write "<br>Stauts er sat til R " & tal - test
   
  status = "T"
  test = instr(MaXValg, status) 
  response.write "<br>Stauts er sat til T " & test
  response.write "<br>Stauts er sat til T " & tal - test
 
  status = ""
  test = instr(MaXValg, status) 
  response.write "<br>Stauts er sat til '""' " & test
  response.write "<br>Stauts er sat til '""' " & tal - test
 
  status = "Q"
  test = instr(MaXValg, status) 
  response.write "<br>Stauts er sat til Q " & test
  response.write "<br>Stauts er sat til Q " & tal - test 


%>

Giver følgende resultat

Stauts er sat til : R 1
Stauts er sat til : R 9
Stauts er sat til : T 2
Stauts er sat til : T 8
Stauts er sat til "" : 1
Stauts er sat til "" : 9
Stauts er sat til Q : 0
Stauts er sat til Q : 10

hvis den haar returneret -1 når status er "" så burde den udskrive -1 og ydemere burde total være 11
Avatar billede troelsm Nybegynder
01. februar 2008 - 19:45 #4
I øvrigt den løsning som du bruger er også den jeg har brugt (altså tester først på = "" - men det undrede mig bare at den ikke kunne finde udaf det andet...

Takker
Avatar billede erikjacobsen Ekspert
01. februar 2008 - 19:48 #5
Jo, men sådan er den defineret, http://www.w3schools.com/vbscript/func_instr.asp : If string2 is "" - InStr returns start
Forlang nu ikke for meget logik i mere end 10 år gammel teknologi. De gjorde det så godt de kunne dengang.
Avatar billede troelsm Nybegynder
01. februar 2008 - 20:21 #6
#erikjacobsen
det er også ok - det er bare ikke særlig logisk at man har valgt den løsning - faktisk nok mest den mest ulogiske man kunne vælge :-)
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