21. april 2006 - 11:27
Der er
20 kommentarer og 1 løsning
Problem med left(indhold),1
Hejsa NG.
For at korte ned for nogle tegn har jeg brugt følgende:
left(indhold),200.
Det giver dog nogle problemer hvis teksten indeholde nogle asp/html koder. Hvis antal tegn rammer midt i asp/html kode går der fuldstændig kludder i koden.
Se evt:
http://www.filmnet.dk/test2/ Kan man løse det på en anden måde?
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?
21. april 2006 - 11:34
#1
For de første må det være left(indhold, 200) du mener, ikke?
21. april 2006 - 11:46
#2
Left(indhold, InStr(200, indhold & ".", ".")) Den gør det at den finder det første punktum efter bogstav nr. 200. Hvis der ikke er noget punktum tager den resten af strengen, derfor indhold & "." Dernæst vil jeg foreslå at du lægger hver artikel i en <td>, for så vil formateringstags ikke række ind i næste artikel.
21. april 2006 - 11:48
#3
Prøv at gøre sådan så indhold = HTMLencode(indhold) indhold = left(indhold, 200) response.write indhold
21. april 2006 - 11:49
#4
Jeg løber an på at der ikke er punktummer indeni tags'ene, jeg kan i hvert fald ikke komme i tanke om noget eksempel hvor der er. Udover java script: <a onclick="document.body.style.backgroundColor = 'red';">, og det forekommer vel ikke?
21. april 2006 - 11:52
#5
Det hedder Server.HTMLEncode, og den skifter bl.a. < ud med < og > med > Så med den bliver HTML'en synlig ....
21. april 2006 - 11:54
#6
Ahh, det gik lige strækt nok, ja.. Ja, det er jeg godt klar over. Men er problemet ikk at hvis der fx er <table> i teksten, så ødelægger den vil hele siden ? indhold = Server.HTMLEncode(indhold) indhold = left(indhold, 200) response.write indhold
21. april 2006 - 12:07
#7
Idanielsen. Din kode. Hvordan kommer den ind her: (som faktisk er den rigtige kode.) left(fncTextChange(indholdarray(i+1)),200)
21. april 2006 - 12:07
#8
Selve nyhederne er indeni <td></td>
21. april 2006 - 12:09
#9
Fejl i 21/04-2006 12:07:01 Det er denne her: left(fncTextChange(indholdarray(i+3)),200)
21. april 2006 - 12:14
#10
Jeg ville lave tre trin: Dim strIndhold strIndhold = fncTextChange(indholdarray(i+1)) strIndhold = Left(strIndhold , InStr(200, strIndhold & ".", ".")) strIndhold = Replace(Replace(strIndhold, "</t", "</xt"), "<t", "<xt") Sidste linie sørger for at alle <table> bliver til <xtable>, <td> til <xtd>, </td> til </xtd> osv. så omtalte problem med <table> forsvinder. Men hvis indlæggene SKAL kunne indeholde tables, så dur det naturligvis ikke ... - hvad er fncTextChange?
21. april 2006 - 12:15
#11
Du kunne også bare anullere alle tags med strIndhold = Replace(strIndhold, "<", "<x")
21. april 2006 - 12:16
#12
fncTextChange er denne her: Function fncTextChange(strText) strTekst = Trim(strText) fncTextChange = Replace(strTekst,"'","'") fncTextChange = Replace(fncTextChange,"""","""") fncTextChange = Replace(fncTextChange," "," ") fncTextChange = Replace(fncTextChange,"&","&") fncTextChange = Replace(fncTextChange,"-","-") fncTextChange = Replace(fncTextChange,vbCrLf,"<br />") fncTextChange = Replace(fncTextChange,"å","å") fncTextChange = Replace(fncTextChange,"æ","æ") fncTextChange = Replace(fncTextChange,"ø","ø") fncTextChange = Replace(fncTextChange,"Å","Å") fncTextChange = Replace(fncTextChange,"Æ","Æ") fncTextChange = Replace(fncTextChange,"Ø","Ø") fncTextChange = Replace(fncTextChange,"","<b>") fncTextChange = Replace(fncTextChange," ","</b>") fncTextChange = Replace(fncTextChange,"","<i>") fncTextChange = Replace(fncTextChange," ","</i>") fncTextChange = Replace(fncTextChange,"","<u>") fncTextChange = Replace(fncTextChange," ","</u>") End Function Nyhederne skal indeholde <table><tr><td> Her kommer hele koden for visning af nyheder: <% Function fncTextChange(strText) strTekst = Trim(strText) fncTextChange = Replace(strTekst,"'","'") fncTextChange = Replace(fncTextChange,"""","""") fncTextChange = Replace(fncTextChange," "," ") fncTextChange = Replace(fncTextChange,"&","&") fncTextChange = Replace(fncTextChange,"-","-") fncTextChange = Replace(fncTextChange,vbCrLf,"<br />") fncTextChange = Replace(fncTextChange,"å","å") fncTextChange = Replace(fncTextChange,"æ","æ") fncTextChange = Replace(fncTextChange,"ø","ø") fncTextChange = Replace(fncTextChange,"Å","Å") fncTextChange = Replace(fncTextChange,"Æ","Æ") fncTextChange = Replace(fncTextChange,"Ø","Ø") fncTextChange = Replace(fncTextChange,"","<b>") fncTextChange = Replace(fncTextChange," ","</b>") fncTextChange = Replace(fncTextChange,"","<i>") fncTextChange = Replace(fncTextChange," ","</i>") fncTextChange = Replace(fncTextChange,"","<u>") fncTextChange = Replace(fncTextChange," ","</u>") End Function Set rs = objConn.Execute("SELECT TOP 9 * FROM nyhedtemp WHERE active = True ORDER BY id DESC") dim newsidarray(9) dim recordarray(9) dim picarray(9) dim indholdarray(9) i = 0 while not rs.eof newsidarray(i) = rs("id") recordarray(i) = rs("overskrift") picarray(i) = rs("pic") indholdarray(i) = rs("indhold") i = i +1 rs.movenext wend i=0 Response.Write"<table cellpadding='0' cellspacing='0' width='500'>" & vbcrlf Response.Write"<tr>" & vbcrlf Response.Write"<td colspan='2' class='nyhed_underline'>" & vbcrlf Response.Write"<table cellpadding='0' cellspacing='0'>" & vbcrlf Response.Write"<tr>" & vbcrlf Response.Write"<td colspan='2' class='nyhed_top_overskrift'>" & recordarray(i+0) & "</td>" & vbcrlf Response.Write"</tr>" & vbcrlf Response.Write"<tr>" & vbcrlf Response.Write"<td valign='top' class='nyhed_billede'><a href='/news.asp?mode=news_discuss&id=" & newsidarray(i+0) & "' title='" & recordarray(i+0) & "'><img src='/newspics/" & picarray(i+0) & "' alt='Pic' border='0'></a></td>" & vbcrlf Response.Write"<td class='nyhed_tekst'>" & fncTextChange(indholdarray(i+0)) & "</td>" & vbcrlf Response.Write"</tr>" & vbcrlf Response.Write"</table>" & vbcrlf Response.Write"</td>" & vbcrlf Response.Write"</tr>" & vbcrlf for i =0 to 3 Response.Write "<tr>" & vbcrlf Response.Write"<td valign='top' class='border_bottom'>" & vbcrlf Response.Write"<table cellpadding='0' cellspacing='0'>" & vbcrlf Response.write"<tr>" & vbcrlf Response.write"<td class='nyhed_tekst_small' valign='top'><a href='/news.asp?mode=news_discuss&id=" & newsidarray(i+1) & "' title='" & recordarray(i+1) & "'><img src='/newspics/" & picarray(i+1) & "' alt='Pic' width='50' border='0'></a></td>" & vbcrlf Response.Write"<td class='nyhed_tekst_small' valign='top'><b>" & recordarray(i+1) & "</b><br><br>" & left(fncTextChange(indholdarray(i+3)),200) & "</td>" & vbcrlf Response.write"</tr>" & vbcrlf Response.Write"</table>" & vbcrlf Response.Write"</td>" & vbcrlf Response.write"<td valign='top' class='border_bottom'>" & vbcrlf Response.Write"<table cellpadding='0' cellspacing='0'>" & vbcrlf Response.Write"<tr>" & vbcrlf Response.write"<td class='nyhed_tekst_small' valign='top'><a href='/news.asp?mode=news_discuss&id=" & newsidarray(i+5) & "' title='" & recordarray(i+5) & "'><img src='/newspics/" & picarray(i+5) & "' alt='Pic' width='50' border='0'></a></td>" & vbcrlf Response.Write"<td class='nyhed_tekst_small' valign='top'><b>" & recordarray(i+5) & "</b><br><br>" & left(fncTextChange(indholdarray(i+5)),200) & "</td>" & vbcrlf Response.Write"</tr>" & vbcrlf Response.Write"</table>" & vbcrlf Response.Write"</td>" & vbcrlf Response.Write"</tr>" & vbcrlf next Response.Write"</table>" & vbcrlf %>
21. april 2006 - 12:17
#13
21/04-2006 12:15:36 det giver problemer da teksten også indeholder sådan en linie: <a href="redirect.asp?mode=movie&Id=6400">
21. april 2006 - 12:19
#14
OK Så er den med punktummet måske nok?: Dim strIndhold strIndhold = fncTextChange(indholdarray(i+1)) strIndhold = Left(strIndhold , InStr(200, strIndhold & ".", "."))
21. april 2006 - 12:20
#15
OK. Det kan jeg godt se ...
21. april 2006 - 12:23
#16
Prøver 21/04-2006 12:19:25 Og den skal vel bare komme efter: Set rs = objConn.Execute("SELECT TOP 9 * FROM nyhedtemp WHERE active = True ORDER BY id DESC") dim newsidarray(9) dim recordarray(9) dim picarray(9) dim indholdarray(9) Dim strIndhold strIndhold = fncTextChange(indholdarray(i+1)) strIndhold = Left(strIndhold , InStr(200, strIndhold & ".", "."))
21. april 2006 - 12:25
#17
Hvis vi nu antager at alle links peger på noget med .asp eller .htm, så gør sådan: Dim strIndhold strIndhold = fncTextChange(indholdarray(i+1)) strIndhold = Replace(Replace(strIndhold, ".asp", "§§§asp"), ".htm", "§§§htm") strIndhold = Left(strIndhold , InStr(200, strIndhold & ".", ".")) strIndhold = Replace(Replace(strIndhold, "§§§asp", ".asp"), "§§§htm", ".htm")
21. april 2006 - 12:36
#18
Skal det se sådan ud:? Set rs = objConn.Execute("SELECT TOP 9 * FROM nyhedtemp WHERE active = True ORDER BY id DESC") dim newsidarray(9) dim recordarray(9) dim picarray(9) dim indholdarray(9) Dim strIndhold strIndhold = fncTextChange(indholdarray(i+1)) strIndhold = Replace(Replace(strIndhold, ".asp", "§§§asp"), ".htm", "§§§htm") strIndhold = Left(strIndhold , InStr(200, strIndhold & ".", ".")) strIndhold = Replace(Replace(strIndhold, "§§§asp", ".asp"), "§§§htm", ".htm") Og skal jeg kalde denne her: left(fncTextChange(indholdarray(i+3)),200) med noget andet?
21. april 2006 - 13:10
#19
Der hvor du nu skriver Response.write "............." & left(fncTextChange(indholdarray(i+3)),200) & "....." Skal du skrive fx. strIndhold = fncTextChange(indholdarray(i+3)) strIndhold = Replace(Replace(strIndhold, ".asp", "§§§asp"), ".htm", "§§§htm") strIndhold = Left(strIndhold , InStr(200, strIndhold & ".", ".")) strIndhold = Replace(Replace(strIndhold, "§§§asp", ".asp"), "§§§htm", ".htm") Response.write "............." & strIndhold & "....." Har du ikke selv lavet det?
21. april 2006 - 13:27
#20
Det virker. Tak for det. Selve koden ovenfor har jeg fået hjælp til. Så har jeg derefter selv bygget den ud. Men så snart der kommer noget kode, ligesom det du har skrevet, er jeg ikke ferm til at sætte det ind. Husk at smide et svar.
21. april 2006 - 13:35
#21
Ok, godt det virker God weekend
Kurser inden for grundlæggende programmering