| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |