str = replace(str,search,"<b>" & search & "</b>",1,-1,vbTextCompare)
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 14 jan 2002]
15 svar · 381 visningar · startad av Jesper T
Har sökt och kollat och letat med ljus och lykta efter ett grej som markerar upp den sökta texten med <B>.
RegExp, replace osv men hittar inget exempel som skulle kunna passa i en sökfunktion! Har någon någon aning (nån, någon...)
Det finns säkert 1000 sätt, men jag hittar inget!
//Mvh Jesper
str = replace(str,search,"<b>" & search & "</b>",1,-1,vbTextCompare)
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 14 jan 2002]
Kul!
Jag har bytt ut search mot Query, är det fel eller rätt?
Och var skall jag stoppa den?
str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
Det händer inget!!
MVH Jesper
[Redigerat av Jesper T den 14 jan 2002]
Om du skriver ut resultatet då
response.write str
Om query är rätt eller fel kan jag inte säga något om utan att se mer av din kod.
------------------
essentitia preter non sans multiplicandum
Ser ut så här:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("search.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT * FROM Items WHERE Name like '%" & Query & "%' or Description like '%" & Query & "%'"
rs.Open SQL, Conn
str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
x = 0
For x = 1 to 9999
If rs.eof then
If x = 1 Then
Response.Write "Sökningen gav inget resultat!<BR>"
End If
Exit For
Else
ImageURL = rs("ImageURL")
ImageURL = "<img src='../../db/items/" & ImageURL & "'>"
str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
%>
</font>
<table width="520" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="152" align="right" valign="middle" height="19">
<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Varu
namn </font></div>
</td>
<td width="448" height="19"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<% response.write rs("Name")
response.write str %>
</font></td>
</tr>
<tr>
<td width="152" align="right" valign="middle">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Beskrivning</font></div>
</td>
<td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<%response.write str
response.write rs("Description")%>
</font></td>
Ungefär i den stilen.
Noll och nix, händer inget, men jag är väl förstås ute och cyklar!
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("search.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT * FROM Items WHERE Name like '%" & Query & "%' or Description like '%" & Query & "%'"
rs.Open SQL, Conn
x = 0
For x = 1 to 9999
If rs.eof then
If x = 1 Then
Response.Write "Sökningen gav inget resultat!<BR>"
End If
Exit For
Else
ImageURL = rs("ImageURL")
ImageURL = "<img src='../../db/items/" & ImageURL & "'>"
%>
</font>
<table width="520" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="152" align="right" valign="middle" height="19">
<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Varu
namn </font></div>
</td>
<td width="448" height="19"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<%
response.write replace(rs("Name"),Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
%>
</font></td>
</tr>
<tr>
<td width="152" align="right" valign="middle">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Beskrivning</font></div>
</td>
<td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<%
response.write replace(rs("Description"),Query, "<b>" & Query & "</b>",1,-1,vbTextCompare)
%>
</font></td>
------------------
essentitia preter non sans multiplicandum
Ja då, ja då, jaaaaaaaaaaaa
hej
kort tilläggsfråga: om jag i min sökmotor söker på 900 får jag t ex träff på SS-EN 9001, kan jag med relativt enkla medel då skriva ut det såhär SS-EN <b>900</b>1 blablabla
*undrande*
------------------
Rammstein rules - Du riechst so gut
hehe, den som testar skall se fungerande saker sa nån =)
tack tack
------------------
Rammstein rules - Du riechst so gut
str = replace(str,Query ,"<b>" & Query & "</b>",1,-1,vbTextCompare)
Vad står 1 , -1 och vbTextCompare för? Det fungerar ju lika bra utan...
1 är startposition
-1 betyder att man skall byta alla förekomster
vbTextCompare innebär att man inte är skiftlägeskänslig
Om du har sökt efter "apa" och hittar "Apa" i databasen så fungerar det med att göra bold även i detta fall. Om du utelämnar vbTextCompare så kommer replace inte att hitta "Apa"
Ah, goodie. Men när replace nu hittar även Apa, så byter den fortfarande ut det mot <b>apa</b> (alltså tar den bort att Apa har stort a när det skrivs ut). Finns det något lätt sätt att få Apa att ha kvar sitt stora a? :)
Nja, inte så där rakt av men det går (naturligtvis). Du måste använda regular expressions och utnyttja samlingen matches.
TextCompare är inte så bra i den koden.
Söker man på asp och ASP hittas så kommer <b>asp</b> skrivas i koden. :l
Så här har jag skrivit på ett ställe. Inte så väldans bra heller, men lite bättre enligt mig.
str = replace(str,Query ,"<b>" & UCase(Query) & "</b>",1,-1,vbTextCompare)
Det hittade ordet blir alltid skrivet med versaler då...
Ah! Missade det två sista inläggen. :r