|
| Replace( Replace (Replace( ... ))) Fra : Lars Klingenberg |
Dato : 20-08-01 01:19 |
|
Hi,
En sen nattetime (lige nu) gik jeg amok i Replace:
Dim tekst
tekst = objRSenh("notat").Value
If IsNull(tekst) Then
Else
Response.Write "<br><ul><li>" & _
Replace( (Replace( (Replace( (Replace(tekst, chr(10), "[10]")),
chr(13), "[13]")), "[13][10][13][10]", "</li><li>")), "[13][10]", "<br>") &
_
"</li></ul><br>"
End If
Jeg tænkte: det må kunne gøres smartere, men min ristede hjerne kan ikke
lige klare det nu... Er der nogen der kan hjælpe mig? Det jeg vil opnå er at
tekst indtastet i memofeltet 'notat' optræder på listeform, men kun der hvor
brugeren har indtaste to på hinanden følgende linieskift. Der hvor der kun
er indtastet ét linieskift skal der blot indsættes et break. Jeg forsøgte
først at få en Replace funktion til at lede efter to på hinanden følgende
chr(10) (chr(10) & chr(10)), men det ville den simpelthen ikke finde, derfor
fandt jeg på ovenstående 'omvej', som jeg håber nogen vil hjælpe mig med at
korte lidt ned - hvis nogen overhovedet kan gennemskue det (hvis jeg selv
finder på en nemmere metode i morgen poster jeg det).
--
Med venlig hilsen
Lars Klingenberg
[lklingenberg@ifi.ku.dk]
| |
Allan Ebdrup (20-08-2001)
| Kommentar Fra : Allan Ebdrup |
Dato : 20-08-01 09:05 |
|
Hej Lars
Prøv med:
Response.Write "<br><ul><li>" & _
Replace(Replace(tekst, vbNewLine, "<br>"), "<br><br>", "</li><li>") & _
"</li></ul><br>"
MVH
Allan Ebdrup
| |
Anders Holbøll (20-08-2001)
| Kommentar Fra : Anders Holbøll |
Dato : 20-08-01 14:39 |
|
Lars Klingenberg wrote:
>
> Det jeg vil opnå er at tekst indtastet i memofeltet 'notat'
> optræder på listeform, men kun der hvor brugeren har indtaste
> to på hinanden følgende linieskift. Der hvor der kun er indtastet
> ét linieskift skal der blot indsættes et break.
Hvis det skal gemmes i en databasen, ville jo nok gemme det
ukonverterede, så brugeren senere kan få mulighed for at redigerer i
teksten (måske skulle man lege lidt med xml).
Function PlaintextToHtml(Value)
Value = Server.HtmlEncode(Value)
Value = Replace(Value, vbCr, "")
Do Until (InStr(Value, vbLf & vbLf & vbLf) = 0)
Value = Replace(Value, vbLf & vbLf & vbLf, vbLf & vbLf)
Loop
Value = Replace(Value, vbLf & vbLf, "</li><li>")
Value = Replace(Value, vbLf, "<br>")
PlaintextToHtml = Value
End Function
--
Anders
| |
|
|