17. januar 2004 - 14:18
Der er
8 kommentarer og 1 løsning
Find ord og udskriv hele linien
Hvordan gør man sådan at hvis et ord var i en streng, så skriver den hele linien? Linierne bliver delt mellem vbCrLf da det kommer fra et textarea. Noget lign: Do Until RS.EOF If string like &"%"& RS("ord") &"%"& Then //Rigtigt at skrive &"%"&? //Udskriv hele den linie hvor ordet var i End If RS.MoveNext Loop
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
17. januar 2004 - 14:27
#1
If Instr("Ja det er godt med dig", "dig") > 1 then ' den var god nok End if
17. januar 2004 - 14:29
#2
Hvad mener du? Jeg bliver da nødt til at have strengen med ordende inkluderet, så det kan da ikke være andet end if streng like "%ord%" then.
Slettet bruger
17. januar 2004 - 14:33
#3
LIKE er en SQL kommando som du ikke kan bruge i asp direkte. Det tilsvarende er er Instr() funktionen, der bruges ligesom jeg viste før :) If Instr(din_string_variabel, rs("ord")) > 1 then response.write din_string_variabel End if
17. januar 2004 - 14:36
#4
På den måde, så ikke lige ,"dig" i den første :)
17. januar 2004 - 14:42
#5
Men hvordan gør man sådan at den kun skriver den linie ud? Fx skal den kun skrive "med" <% streng = "hej"& vbCrLf &"med"& vbCrLf &"dig" find = "med" If Instr(streng,find) > 1 Then Response.Write(Replace(streng, vbCrLf, "<br>")) End If %> Så står der: hej med dig :(
17. januar 2004 - 14:55
#6
Tror jeg har løst den sådan: <% streng = Request.Form("tekst") find = "med" streng = Split(streng,vbCrLf) i = 0 For Each Item In streng If Instr(streng(i),find) > 1 Then Response.Write(streng(i) &"<br>") End If i = i + 1 Next %>
17. januar 2004 - 15:18
#7
Men det virker ikke når jeg sætter det sammen med en database, den vil ikke finde ordene i databasen: <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("hjt.mdb") Set RS = Server.CreateObject("ADODB.Recordset") SQL = "Select * From words" RS.Open SQL, Conn, 3, 3 RS.MoveFirst streng = Request.Form("tekst") streng = Split(streng,vbCrLf) find = array("R0", "hej", "med") i = 0 For Each Item In streng Do Until RS.EOF find = RS("Errors") If Instr(streng(i),find) > 1 Then Errors = Errors & streng(i) &"<br>" End If Response.Write(find &"<br>"& streng(i)) find = RS("Maybe") If Instr(streng(i),find) > 1 Then Maybe = Maybe & streng(i) &"<br>" End If RS.MoveNext Loop i = i + 1 Next Response.Write("<br><br><br>"& Errors) %>
Slettet bruger
17. januar 2004 - 15:57
#8
Hmm, mon ikke det er du ikke kører løkken på baggrund af arrayet med ord? Prøv at bruge For i = LBound(find) to UBound(find) i stedet.
17. januar 2004 - 21:34
#9
Det virkede :D
Kurser inden for grundlæggende programmering