Nej, et textarea generere ikke <br>, den generere vbcrlf. Du skal selv udskifte dem med <br>, med en replace.
Men hvis jeg husker ret, så fjerner trim også vrcrlf fra start og slut, så hvis du sender dine data igennem den når du indsætter forsvinder linjeskift:
conn.execute("insert into dinTabel(kolonne) values('"& replace(trim(request.form("formFelt")&""),"'","''") &"')")
maron> Hvis du erstatter 2xlinieskift med 1 linieskift, vil du højst få 1 linie skift efter teksten.
Du kan også checke, om det sidste tegn er et linieskift:
t = rs("tekst") ' smider indholdet af kolonnen "tekst" over i variablen "t" t = replace(t, vbCrLf & vbCrLf, vbCrLf) ' erstatter 2x linieskift med 1x linieskift if right(t, 2) = vbCrLf then t = left(t, len(t) - 2) ' fjern de sidste 2 tegn, hvis det er linieskift
h = "<br /><br />one<br /><br />two<br /><br />three"
h = replace(h, "<br /><br />", "<br />")
Vil udskrive: <br />one<br />two<br />three
.. Og så skal det være "<br>" og ikke "<br />", da der ikke er nogen grund til at bruge XHTML, da XHTML ikke understøttes ordentligt af de nuværende browsere.
XHTML bliver fortolket som fejlfyldt HTML 4.01, hvor man jo bruger "<br>". :-)
Ok thesurfer, nu er det meget tæt på et perfekt resultat, som det er nu kan der vises der maks et linieskift, jeg vil dog gerne kunne få vist op til 2 da det jo angiver et nyt ansnit i et indlæg.
For det første: Den kategoristruktur du viser der, findes ikke For det andet : - Hvis det er VBScript i ASP, skal spørgsmål stille i ASP-kategorien - HVis der er VBScript i Windows Script Host, dvs. ".VBS" filer, skal det stilles i http://www.eksperten.dk/spm/Programmering/Script/VBscript/ Eller WSH-kategorien (mener jeg) - Hvis det er VBScript i browseren, som kun understøttes af Internet Explorer, skal kan det stilles flere steder, men stilles oftes i f.eks HTML-kategorerine eller IE-kategorien.
Nu synes jeg at du skal holde op med at spilde min tid, holde dig til Python-relaterede spørgsmål!
carstensuurland> By the way: Jeg testede din loop, hvilket egentligt ville være god nok (går jeg ud fra), hvis VBScript i ASP ikke erstattede globalt..
Du har ret, jeg fik rækkefølgen forkert Den rigtige rækkefølge er 1. Script->VBScript 2. Script->ASP
Jeg mener at 1. er det rigtige svar. Hvergang jeg kommer med et indlæg så kommenterer du det og truer med at anmelde mig. Så jeg ved snart ikke hvem som spilder den andens tid. Vil du ikke gøre mig den tjeneste at anmelde mig omgående, hvis det kan få dig til at holde op med at forfølge mig.
1) Jeg truer ikke folk, jeg advarer folk når de gør noget forkert
2) Du blev alle anmeldt her: 25/06-2007 15:19:56
3) Det her er *ikke* VBScript! Det er her VBScript i ASP! :-) - Der er en forskel: Afviklingsmiljøet -- VBScript afvikles i Windows Script Host/Windows -- VBscript i ASP afvikles via en webserver, typisk IIS eller Apache med Sun's Chili!ASP
maron> Jeg fortager ikke loopen.. :-) Jeg testede carstensuurland's kode, da jeg var lidt usikker på hvordan den ville virke.. Det virkede ikke særligt godt hos mig, så jeg smed en IF-sætning udenom, så den ikke blev afviklet..
Loopen ville kun blive afviklet, hvis 2 var lig 3, hvilket aldrig vil lade sig gøre.. :-)
Her er den kode jeg bruger lige uden (dvs, uden loopen):
Her er den nuværende kode med forklaring i form af kommentar, ved linierne:
<% option explicit ' med Option Explicit som øverst linie i dokumentet, bliver vi informeret hvis vi bruger variabler vi ikke erklæret ' hvilket typisk typer på, at vi har lavet en stavefejl i navnet på en variabel %>
if request.servervariables("request_method") = "POST" then ' hvis der er submittet, skal der abejdes på de modtagne data (teksten) dim indhold ' erklær variablen, så
indhold = request.form("indhold") 'rs("indhold") ' simulering af data der hentes fra databasen
indhold = replace(indhold, vbCrLf & vbCrLf, vbCrLf) ' erstatte alle 2x mellemrum med 1x mellemrum. juster selv hvor mange mellemrum der skal fjernes
if right(indhold, 2) = vbCrLf then indhold = left(indhold, len(indhold) - 2) ' hvis sidste 2 tegn er Cr og Lf, hvilket betyder linieskift, fjernes de indhold = Server.HTMLencode(indhold) ' erstatter HTML tags med HTML entiteter, så HTML kode vises fremfor at blive afviklet indhold = replace(indhold, vbCrLf, "<BR>") ' erstatte alle linieskift med HTML-linieskiftet
response.write indhold ' udskriv indholdet/teksten, så vi kan se den end if
response.write "<hr>" & now ' tidsstempel, så vi kan se at det er en ny side, der vises %>
thesurfer >> koden virker ikke efter hensigten. Hvis du skriver en tekst formularen og afslutter med at holde ENTER nede og generere en masse linieskift, kommer de alligevel med i response.write
Hvis denne kode virker som den skal, skal jeg nok forklare den.. :-)
<% option explicit ' med Option Explicit som øverst linie i dokumentet, bliver vi informeret hvis vi bruger variabler vi ikke erklæret ' hvilket typisk typer på, at vi har lavet en stavefejl i navnet på en variabel %>
if request.servervariables("request_method") = "POST" then ' hvis der er submittet, skal der abejdes på de modtagne data (teksten) dim indhold ' erklær variablen, så
indhold = request.form("indhold") 'rs("indhold") ' simulering af data der hentes fra databasen
indhold = replace(indhold, vbCrLf & vbCrLf, vbCrLf) ' erstatte alle 2x mellemrum med 1x mellemrum. juster selv hvor mange mellemrum der skal fjernes dim i
i = len(indhold) - 1 do while mid(indhold, i, 2) = vbCrLf i = i - 2 loop end if
indhold = left(indhold, i + 1) indhold = Server.HTMLencode(indhold) ' erstatter HTML tags med HTML entiteter, så HTML kode vises fremfor at blive afviklet indhold = replace(indhold, vbCrLf, "<BR>") ' erstatte alle linieskift med HTML-linieskiftet
response.write indhold ' udskriv indholdet/teksten, så vi kan se den end if
response.write "<hr>" & now ' tidsstempel, så vi kan se at det er en ny side, der vises %>
Det gør den ikke, fordi der er et END IF for meget.. :-)
Sådan:
<% option explicit ' med Option Explicit som øverst linie i dokumentet, bliver vi informeret hvis vi bruger variabler vi ikke erklæret ' hvilket typisk typer på, at vi har lavet en stavefejl i navnet på en variabel %>
if request.servervariables("request_method") = "POST" then ' hvis der er submittet, skal der abejdes på de modtagne data (teksten) dim indhold ' erklær variablen, så
indhold = request.form("indhold") 'rs("indhold") ' simulering af data der hentes fra databasen
indhold = replace(indhold, vbCrLf & vbCrLf, vbCrLf) ' erstatte alle 2x mellemrum med 1x mellemrum. juster selv hvor mange mellemrum der skal fjernes dim i
i = len(indhold) - 1 do while mid(indhold, i, 2) = vbCrLf i = i - 2 loop
indhold = left(indhold, i + 1) indhold = Server.HTMLencode(indhold) ' erstatter HTML tags med HTML entiteter, så HTML kode vises fremfor at blive afviklet indhold = replace(indhold, vbCrLf, "<BR>") ' erstatte alle linieskift med HTML-linieskiftet
response.write indhold ' udskriv indholdet/teksten, så vi kan se den end if
response.write "<hr>" & now ' tidsstempel, så vi kan se at det er en ny side, der vises %>
Nu fjerner den også alle linieskift før teksten (i starten) og efter teksten (i slutningen):
<% option explicit ' med Option Explicit som øverst linie i dokumentet, bliver vi informeret hvis vi bruger variabler vi ikke erklæret ' hvilket typisk typer på, at vi har lavet en stavefejl i navnet på en variabel %>
<% if request.servervariables("request_method") = "POST" then ' hvis der er submittet, skal der abejdes på de modtagne data (teksten) dim indhold ' erklær variablen, så
indhold = request.form("indhold") 'rs("indhold") ' simulering af data der hentes fra databasen
indhold = replace(indhold, vbCrLf & vbCrLf, vbCrLf) ' erstatte alle 2x mellemrum med 1x mellemrum. juster selv hvor mange mellemrum der skal fjernes dim i
' fjern alle linieskift før teksten: do while left(indhold, 2) = vbCrLf indhold = mid(indhold, 2) loop
' fjern alle linieskift efter teksten: i = len(indhold) - 1 if instr(indhold, vbCrLf) > 0 then do while mid(indhold, i, 2) = vbCrLf i = i - 2 loop end if indhold = left(indhold, i + 1)
indhold = Server.HTMLencode(indhold) ' erstatter HTML tags med HTML entiteter, så HTML kode vises fremfor at blive afviklet indhold = replace(indhold, vbCrLf, "<BR>") ' erstatte alle linieskift med HTML-linieskiftet
response.write indhold ' udskriv indholdet/teksten, så vi kan se den end if
response.write "<hr>" & now ' tidsstempel, så vi kan se at det er en ny side, der vises %>
bauerdata: Dine Python eksempler er ikke til nogen hjælp når det ikke er Python der benyttes i forvejen. Dine indlæg skaber derfor blot megen forvirring og er reelt ikke til gavn for den der stiller spørgsmålet.
Du bedes derfor venligst stoppe med at komme med Python kode med mindre dette er relevant for spørgsmålet, tak :)
Hvis ikke, smider jeg min computer væk, og flytter ud på en øde ø......
Eksempel på brug af funktionen:
indhold = rs("indhold") indhold = ret_tekst(indhold) ' her kaldes funktionen.. :-) indhold = replace(indhold, vbCrLf, "<br>") response.write indhold
Funktionen kan smides over i en ekstern fil, f.eks. "func.asp", der så skal inkluderes (før brug) med f.eks:
<!-- #include file="func.asp" -->
Her er koden, som jeg gerne vil have at du tester, og fortæller mig om det virker.. :-)
<% option explicit ' Med Option Explicit som øverst linie i dokumentet, bliver vi informeret hvis vi bruger variabler vi ikke erklæret ' hvilket typisk typer på, at vi har lavet en stavefejl i navnet på en variabel
' ------ NOTE START ----- ' Denne funktion KAN smide i en separat fil, f.eks. med filnavnet "funk.asp" ' Filen "funk.asp" inkluderes så med: ' ' <!-- #include file="funk.asp" --> ' ' Derefter kan funktion sådan: indhold = ret_tekst(indhold) ' ' hvor "indhold" er variablen der indeholder indholdet fra databasen ' ------ NOTE SLUT -----
function ret_tekst(indhold)
dim max_antal_linieskift max_antal_linieskift = 2 ' JUSTER DENNE, forklaring: max antal af linieskift/mellemrum mellem teksterne/linier
dim i, linier, iMAL ' iMAL = i og MaxAntalLinieskift
linier = split(indhold, vbCrLf) ' "linier" er nu en array, der indeholder alle linier, delt op pr linie
dim fundet_tekst, nytindhold, linieskift, linie, antal_linieskift
Jeg skulle lige til at hive et kort frem, og finde en øde ø.... :-)
Det var så lidt :-)
Jeg er glad for at du stillede dette spørgsmål.. Jeg skal nemlig til at lave en gæstebog, for en jeg kender, og regner med at bruge dette script.. :-)
- Jeg håber at andre kan bruge det, eller finde inspiration i det.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.