17. marts 2003 - 15:36Der er
5 kommentarer og 3 løsninger
Check: Hvor mange gange en værdi forekommer i en streng
Hej
Hvordan checker man hvor mange gange en værdi (f.eks. "03-17-2003") forekommer i en streng bestående af datoer, som er listet på følgende måde: "02-17-2003, 03-17-2003, 03-17-2003, 04-17-2003".
Hvis du ved det, kan du så ikke lige udbygge min funktion, som hedder "shareRes"?
Set myConn=Server.CreateObject("ADODB.Connection") myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
strSQL = "SELECT datopublish FROM search WHERE datopublish >= #" & Year(date) & "-" & month(date) & "-" & Day(date) & "# AND datopublish < #" & Year(dateadd("yyyy",1,date)) & "-" & month(dateadd("yyyy",1,date)) & "-" & Day(dateadd("yyyy",1,date)) & "# order by datopublish"
set rs = myConn.execute(strSQL)
do while not rs.EOF if isDate(rs("datopublish")) then myDates = myDates & rs("datopublish") & ", " End If rs.MoveNext Loop
if Session("henvisningStatus") = "opdatere" then myDates = Replace(Session("henvisningDatoPublikation") & ", ", "") end if
if right(myDates, 2) = ", " then myDates = left(myDates,len(myDates)-2) end if
myDateArr = Split(myDates,",")
dato = date () datoSlut = DateAdd("yyyy",1,date) i = 0 do while dato <= datoSlut if shareRes() and CDate(myDateArr(i)) <> CDate(dato) then Response.Write "<option value=""" & dato & """>" & dato & "</option>" else i = i + 1 if i > ubound(myDateArr) then i = ubound(myDateArr) end if dato = dateAdd("d",1,dato) loop
Function countDates(dates) antal = 0 myArr = Split(dates, ", ") For i = 0 to uBound(MyArr) If MyArr(i) = "03-17-2003" Then antal = antal + 1 End If Next countDates = antal End function
Set myConn=Server.CreateObject("ADODB.Connection") myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
strSQL = "SELECT datopublish FROM search WHERE datopublish >= #" & Year(date) & "-" & month(date) & "-" & Day(date) & "# AND datopublish < #" & Year(dateadd("yyyy",1,date)) & "-" & month(dateadd("yyyy",1,date)) & "-" & Day(dateadd("yyyy",1,date)) & "# order by datopublish"
set rs = myConn.execute(strSQL)
do while not rs.EOF if isDate(rs("datopublish")) then myDates = myDates & rs("datopublish") & ", " End If rs.MoveNext Loop
if Session("henvisningStatus") = "opdatere" then myDates = Replace(Session("henvisningDatoPublikation") & ", ", "") end if
if right(myDates, 2) = ", " then myDates = left(myDates,len(myDates)-2) end if
myDateArr = Split(myDates,",")
dato = date () datoSlut = DateAdd("yyyy",1,date) i = 0 do while dato <= datoSlut if countDates(myDates, myDateArr(i)) < 2 and CDate(myDateArr(i)) <> CDate(dato) then Response.Write "<option value=""" & dato & """>" & dato & "</option>" else i = i + 1 if i > ubound(myDateArr) then i = ubound(myDateArr) end if dato = dateAdd("d",1,dato) loop
antal = 0 myArr = Split(dates, ", ") For i = 0 to uBound(MyArr) If MyArr(i) = thisDate Then antal = antal + 1 End If Next countDates = antal End function
Function RegExpTest(patrn, strng) Dim regEx, Match, Matches ' Create variable. Set regEx = New RegExp ' Create regular expression. regEx.Pattern = patrn ' Set pattern. regEx.IgnoreCase = True ' Set case insensitivity. regEx.Global = True ' Set global applicability. Set Matches = regEx.Execute(strng) ' Execute search. For Each Match in Matches ' Iterate Matches collection. intMatchCount = intMatchCount + 1 Next RegExpTest = intMatchCount End Function
patrn = den dato du leder efter strng = den streng du soeger i.
Jeg har brug for et hurtigt svar, så jeg lukker nu. Tak for hjælpen :-)
Synes godt om
Ny brugerNybegynder
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.