Avatar billede moso Nybegynder
23. maj 2006 - 23:29 Der er 15 kommentarer og
1 løsning

Hvordan tjekker jeg værdien i et array i mod en værdi i en løkke?

Jeg har en løkke der giver mig et variabelt antal værdier. Disse værdier skal enkeltvis vurderes i forhold til indholdet i et array. Jeg har pt denne løsning til at splitte arrayet op med, men kan ikke gennemskue næste træk. Smider koden her:
Denne kode ligger altså inde i en While-løkke.

Dim Array
Dim iArrayLength, i
Array = Split( (KursusUnik.Fields.Item("Emneord_Kurser").Value), ",")
iArrayLength = UBound(Array)

For i = 0 to iArrayLength
Response.Write(Array(i))
Next

Jeg har pt. bare ladet den udskrive Arrayet, men har bruger noget ala:
if array(i) = nyvariabel then
response.write("de passer sammen!")
end if
Jeg er strandet her og håber der er en derude der kan pege på en ide/løsning.
Takker
Avatar billede moso Nybegynder
23. maj 2006 - 23:30 #1
"har bruger" = har brug for
Avatar billede tofte Juniormester
23. maj 2006 - 23:37 #2
jeg kan ikke helt forstå hvad du mener, hvis du har værdien i nyvariabel så kan du jo bare sammenligne som du skriver - og så har du jo selv løst problemet. Men er det den som også er et array?
Avatar billede softspot Forsker
23. maj 2006 - 23:39 #3
Først og fremmest er det en DÅRLIG idé at navngive sine variable med navne på funktioner der allerede eksisterer i sproget (Array er en af denne slags) - det kan give fejl som er svære at finde... hvis man ikke lige er opmærksom på dette sammenfald.

Når det så er sagt kan jeg ikke helt gennemskue hvad du rent faktisk står med af data (et array og hvad mere)?
Avatar billede moso Nybegynder
23. maj 2006 - 23:50 #4
Jeg har et array: "hund,ko,kat,hest"
Det ligger inde i en løkke der returnerer værdierne fra en tabel i databasen, f.eks. "ko, so, fisk og hest"
Jeg har brug for at vurdere om værdien "ko" indgår i mit array, og hvis den gør, så skal den tjekkes af i en tjekbox, dvs. skrive "checked".
I dette eksempel skal der altså findes et match når løkken skriver ko og hest, altså første og sidste gang jeg looper igennem tabellen.
Undskylder for børnehaveeksemplet, men det var lige det jeg kunne komme på..;-)
Avatar billede moso Nybegynder
23. maj 2006 - 23:51 #5
tofte: min egen løsning stopper så snart den har et match. Den tjekker altså ikke resten af tabellen igennem.
Avatar billede moso Nybegynder
23. maj 2006 - 23:55 #6
Jeg har nu løst det ved at lave et nyt db-udtræk der tjekker værdien op imod løkken, og hvis der er poster i dette, så er der et match. Det er ikke den smarteste løsning men den virker. Vil meget gerne høre om der er en bedre løsning.
Avatar billede softspot Forsker
23. maj 2006 - 23:58 #7
Du kan lave en regular expression på strengen af hver værdi (i stedet for at omsætte databaseværdien til et array). Alternativt kunne du benytte instr til at søge efter hver værdi i dit array.
Avatar billede tofte Juniormester
23. maj 2006 - 23:58 #8
Jeg er ikke helt med på problemet, hvis du har et array som indeholder ko,so,hest er du så ikke sikker på, at de samme værdier findes i databasen eller hvad? Hvis de ikke findes, vil du så kun have dem skrevet ud som findes begge steder?
Avatar billede softspot Forsker
24. maj 2006 - 00:04 #9
Den brutale løsning er en løkke i en løkke:

for i = 0 to ubound(arrGlobal)
  for j = 0 to ubound(arrDatabase)
    if arrGlobal(i) = arrDatabase(j) then
      response.write "match"
    end if
  next
next
Avatar billede softspot Forsker
24. maj 2006 - 00:05 #10
arrGlobal er så det array du skal sammenligne op mod og arrDatabase er det array du får ud af at splitte feltet fra databasen.
Avatar billede tofte Juniormester
24. maj 2006 - 00:09 #11
Hvis du kun vil have de værdier som findes både i arrayet og i databasen kan du også lave noget ala:
mitArraySomStreng="'so','ko','kat'"
SQL="SELECT * FROM tabel WHERE dyr IN ("&mitArraySomStreng&");"
man skal dog huske '' om dyret hvis man bruger ovenstående.
Avatar billede softspot Forsker
24. maj 2006 - 00:17 #12
tofte >> jeg tror en kolonne (f.eks. dyr) indeholder flere dyrearter i kommasepareret form, så det er ikke godt nok med IN - desværre.
Avatar billede tofte Juniormester
24. maj 2006 - 00:50 #13
det er svært at sige, men hvis det er tilfældet, ja så dur det ikke.
Avatar billede moso Nybegynder
23. februar 2009 - 16:02 #14
lukker
Avatar billede softspot Forsker
23. februar 2009 - 17:20 #15
Jamen, velbekomme da... :-/
Avatar billede moso Nybegynder
23. februar 2009 - 17:28 #16
men ja - tak for hjælpen...
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