 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
29.05.2008, 12:10
|
#1
|
|
TP-Junior
Registriert seit: May 2008
|
Zeilenumbruch bei Ausgabe eines Memofeldes
Hallo zusammen,
Ich habe in meiner Datenbank ein Memofeld, das auf einer ASP-Seite ausgegeben wird. Allerdings gehen dabei die Zeilenumbrüche verloren.
Bekam schon den Tipp im Access die Zeilenumbrüche mit Strg+Enter oder Umschalttaste+Enter einzugeben - klappt aber leider nicht.
Auch der Vorschlag der hier im Forum gemacht wurde:
Code:
DIM text
text = (mainbf.Fields.Item("Antextblock").Value )
und dann die nl2br-Funktion:
text=Replace(text,Chr(13) & Chr(10),"<br>")
Und dann wieder ausgeben:
<%= text %>
hat nicht funktioniert (zumindest konnte damit meine Seite nicht mehr angezeigt werden).
Hat jemand noch eine andere Idee??
lg Chainy24
|
|
|
29.05.2008, 15:07
|
#2
|
|
TP-Senior
Registriert seit: May 2007
Ort: Berlin
|
Hallo chainy,
ich habe mal 2 Funktionen von mir für Dich herausgesucht:
PHP-Code:
'***************************************************************************************'
'Ausgeben eines <br /> bei Texten mit Zeilenumbruch, egal ob UNIX, MAC oder Windows'
'***************************************************************************************'
function break(byval cText)
If Len(ctext) = 0 or isnull(ctext) then
break = cText
Exit Function
end if
break = replace(replace(cText,vbCRLF,"<br />"),vbLF,"<br />")
end function
'***************************************************************************************'
'Entfernen eines <br /> bei Texten mit Zeilenumbruch und wieder Einsetzen von vbCRLF
'***************************************************************************************
function unbreak(byval cText)
If Len(ctext) = 0 or isnull(ctext) then
unbreak = cText
Exit Function
end if
unbreak=replace(cText,"<br />",vbCRLF)
end function
vbCRLF entspricht Chr(13) & Chr(10)
Vielleicht hilft Dir das weiter.
Der Code ist natürlich für ASP, wenn auch über der Code-Box was anderes steht.
SchneewittchenX
|
|
|
29.05.2008, 16:51
|
#3
|
|
TP-Junior
Registriert seit: May 2008
|
Super danke,
werd´ ich ausprobieren.
Nur: was ist Chr(13) und Chr(10) sind das "normale" Zeilenschaltungen (nur mit Entertaste) oder eine Komination (mit Strg oder Umschalt)?
Schreib ich die function direkt in die Seite in der das Memofeld ausgegeben wird?
lg Chainy24
Geändert von chainy (29.05.2008 um 17:06 Uhr).
|
|
|
29.05.2008, 17:10
|
#4
|
|
TP-Senior
Registriert seit: May 2007
Ort: Berlin
|
Hallo chainy,
Chr(13) und Chr(10) sind das normale ENTER unter Windows,
UMSCHALT+Enter erzeugt nur einen Umbruch Chr(10) und
STRG+Enter erzeugt einen Seitenvorschub (kannst Du alles in einer Textverarbeitung wie Word ausprobieren, wenn die Steuerzeichenanzeige eingeschaltete ist.)
Unter Linux/UNIX ist eine Zeilenumbruch nur Chr(10), was bei der 1. Funktion berücksichtigt wurde.
Ich weiß nicht, wie Deine Umbrüche in die Datenbank kommen: direkt über Access (Chr(13) und Chr(10) ), da unter Windows, oder über ein Web-Eingabeformular, und dann hängt es vom Betriebssystem des Clients ab, was in Deiner DB landet. Deshalb fängt die Funktion beide Varianten ab, schreibt aber nur in einer zurück.
Am besten Du schreibst alle grundlegenden Funktionen in eine extra Datei, vielleicht mit der Endung .inc und fügst diese in die jeweilige ASP-Seite mit include ein.
PHP-Code:
<!--#include virtual="[DATEI].INC"-->
<%
DIM text
text = break(mainbf.Fields.Item("Antextblock").Value )
%>
SchneewittchenX
Geändert von SchneewittchenX (29.05.2008 um 17:19 Uhr).
Grund: Ich habe gerade den Nachtrag gesehen.
|
|
|
29.05.2008, 17:31
|
#5
|
|
TP-Junior
Registriert seit: May 2008
|
Hi
so jetzt hab´ich das gemacht, allerdings krieg ich jetzt diese Fehlermeldung:
Microsoft VBScript runtime error '800a01a8'
Object required: 'mainbf'
/bolena/test/zykl_det.asp, line 13
Was habe ich da wieder angestellt?
lg Chainy24
|
|
|
29.05.2008, 18:24
|
#6
|
|
TP-Senior
Registriert seit: May 2007
Ort: Berlin
|
Hallo chainy,
ich weiß es nicht, ich habe nur Deine Codezeilen kopiert und um den Aufruf der Funktion ergänzt.
Wie sattelfest bist Du denn in ASP?
Meine Kenntnisse liegen etwa 6 Jahre zurück, denn ich bin wie die meisten, auf PHP umgestiegen.
sonst versuche es in 2 Schritten:
PHP-Code:
DIM text
.....
text = (mainbf.Fields.Item("Antextblock").Value )
text = break(text)
SchneewittchenX
Geändert von SchneewittchenX (29.05.2008 um 18:32 Uhr).
|
|
|
29.05.2008, 19:00
|
#7
|
|
TP-Junior
Registriert seit: May 2008
|
Hallo SchneewittchenX,
bin nicht sehr bewandert in ASP (oder sonst was  )
Werd das mit den 2 Schritten noch probieren. (Morgen) sag dann bescheid ob ich´s geschafft hab´.
Auf jeden Fall danke für die Hilfe!!
Chainy24
|
|
|
02.06.2008, 21:54
|
#8
|
|
TP-Junior
Registriert seit: May 2008
|
hallo,
also ich hab jetzt wieder rumprobiert und bin auf eine (wahrscheinlich ziemlich doofe) Frage gekommen:
In der Funktion muss ich statt "Text" den Memofeldnamen angeben?
Oder muss ich das statt "Antextblock" bei der Variablen machen?
Oder gar nicht?
lg Chainy
|
|
|
03.06.2008, 13:50
|
#9
|
|
TP-Senior
Registriert seit: May 2007
Ort: Berlin
|
Hallo chainy,
die Funktionen kopierst Du so in die Include-Datei, wie ich es gesendet habe.
Die Variablen in der Funktion dienen als Platzhalter, ihre Bezeichnung ist egal, die Variablen sind außerhalb der Funktion nicht zu sehen (deshalb sollten sie auch nicht wie Deine Variablen heißen)
Die Werte Deiner realen Variablen werden beim Aufruf an die Funktion übergeben und der Variablen Text zugewiesen. Steht diese Links und rechts des Gleichheitszeichens, dann enthält die rechte Seite den alten Wert und die linke Seite nach Ausführung der Funktion den aktualisierten Wert.
Vorschläge für den Aufruf habe ich Dir ja 2 gemacht.
Änderungen an Quelltexten, die man nicht versteht, können recht eigenwillige Ergebnisse bringen
SchneewittchenX
|
|
|
05.06.2008, 09:30
|
#10
|
|
TP-Junior
Registriert seit: May 2008
|
Hallo SchneewittchenX,
Danke für die Hilfe
Chainy24
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:04 Uhr.
|
 |