23. januar 2005 - 14:19Der er
17 kommentarer og 1 løsning
Søg i array efter en post med to ord
Kan jeg søge i et array ( en af posterne ) om der er et eller to ord ?
Jeg har en kode der ser således ud :
For i=0 ubound(ArrRec,2) Her skal jeg have noget kode der kan finde ud af om der er et eller to ord If ? = "et ord" then skriv 1. html kode Else 'to ord skriv 2. html kode End If Next
Jeg forstiller mig man skal søge efter om der er et mellem rum eller ej ?
For i=lbound(ArrRec) to ubound(ArrRec) If instr(Trim(ArrRec(i)), " ") = 0 then 'skriv 1. html kode Else 'to ord 'skriv 2. html kode End If Next
Idé: Gennemløb alle elementer i listen og trim mellem før og efter indholdet. Søg derefter efter et mellemrum... hvis der er nogen, så skriv 1. eller skriv 2.
Næh det er ikke derfor! Det er naturligvis fordi det er for længe siden jeg har brugt denne funktion (InStr) - man skal jo starte med at angive startindeks. Det betyder at koden skal se således ud i stedet:
For i=lbound(ArrRec) to ubound(ArrRec) If instr(1, Trim(ArrRec(i)), " ") = 0 then 'skriv 1. html kode Else 'to ord 'skriv 2. html kode End If Next
'Creating the Recordset Object Set Conn = Server.CreateObject("ADODB.Connection")
'Creating a DSN-Less connection to your Database strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("pos.mdb")
'Open your recordset Conn.Open strDSN
'* Get records for USA - SOHO *************************************** strSQL = "SELECT * FROM Retail Where Country='usa' and City='soho'" Set rs = Conn.Execute(strSQL)
' Everything in the memory If Not rs.EOF Then ArrRec = rs.getrows() End If '* Get records for USA - SOHO ***************************************
' Close connections rs.close set rs = nothing conn.close set conn = nothing
' Print records for USA - SOHO 'For i = 0 to Ubound(ArrRec,2) 'Response.Write(ArrRec(2,i))%><BR><% 'Next
For i=lbound(ArrRec) to ubound(ArrRec) If instr(1, Trim(ArrRec(i)), " ") = 0 then 'skriv 1. html kode Response.Write "1. html kode" Else 'to ord 'skriv 2. html kode Response.Write "2. html kode" End If Next
For i=lbound(ArrRec) to ubound(ArrRec) If instr(1, Trim(ArrRec(0,i)), " ") = 0 then 'skriv 1. html kode Else 'to ord 'skriv 2. html kode End If Next
Nu har jeg sat den til at lede i den første kolonne i resultatet, men det kan godt være du vil søge i en anden kolonne... det må du lige selv tage en beslutning om :)
OK, nu tror jeg at jeg dik fat i den (og ja, det var mig der ikke fattede en reje, for dokumentationen var - sjovt nok - korrekt). Det skal se sådan ud:
For i = 0 to ubound(ArrRec,2) If instr(1, Trim(ArrRec(0,i)), " ") = 0 then 'skriv 1. html kode Else 'to ord 'skriv 2. html kode End If Next
Jeg udskrifter lbound med 0 da arrays altid starter ved index 0
Hej jeg skal bruge lidt hjælp til en funktions omskrivning i arrays den skal søge på tal mellem 10 og 100 når jeg trykker knappen søg kan ikke helt gennemskue hvordan
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.