arrX = Split(replace(strX, " ", ""),",") strY = "," & replace(strY, " ", "") & "," strNotFound = "" for i = 0 to ubound(arrY) if inStr(1,strY,"," & arrX(i) & ",") = 0 then if len(strNotFound) > 0 then strNotFound = strNotFound & "," end if strNotFound = strNotFound & arrX(i) end if next
Argh! Ja, jeg rettede kode til da jeg sad og lavede den, fordi jeg i første omgang havde vendt det sådan at det var strY der blev lavet til et array og strX som den løsning jeg smed ind... så fik jeg åbenbart ikke rettet helt igennem. Sorry!
Der søges i strY efter det aktuelle værdi i arrX (altså arrX(i)) omstillet af komma. Dette gøres for at sikre dig, at der ikke findes andre tal med flere cifre - f.eks. ville arrX(i) med værdien 1 jo matche 1 og 11 og 111 og 1111 og 121 osv., hvis man ikke sørger for at afgrænse søgningen. Kommaerne får værdien til at se således ud ,1, og den matcher jo kun netop ,1, i strY og ikke ,11, eller ,111, osv.
instr(1, osv...)
angiver blot at der startes fra position 1 i strengen (og kan vist godt undlades iflg. MS dokumentation af VBScript's instr-funktion).
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.