Seite 1 von 1
Zeilenumbrüche
Verfasst: Dienstag 3. August 2004, 10:19
von Kodjak
Hi Leude!
Ich hab da n problem:
in einer Tabelle im textfeld sind die zeilenumbrüche mit dem tag \r\n gemacht.
das soll aber nun ersetzt werden mit <br> da die tabelle in ZOPE angezeigt werden soll. Kommen tut sie aus MySQL.
Kann mir einer da helfen und sagen wie ich das mach?
Verfasst: Dienstag 3. August 2004, 10:31
von RainBowBender
Wenn dein Text in der Variable "meintext" ist:
Verfasst: Dienstag 3. August 2004, 11:26
von Kodjak
hm das haut nicht so hin wie es da steht kann es sein das es so aussehen muss?
Verfasst: Dienstag 3. August 2004, 11:32
von DER Olf
hmpf...
muss es nicht so lauten:
Code: Alles auswählen
import string
string.replace(meintext, "\n", "<br />")
bzw.
mfg Olf
Verfasst: Dienstag 3. August 2004, 12:00
von Kodjak
also die eigentliche syntax sieht so aus:
Code: Alles auswählen
obj_neu.edit(title=der_titel,description=zeile['beschreibung'],answer=zeile['obj_text']+ersteller,sections=zeile['kategorie'])
so und da muss das irgendwie rein mit den zeilenumbrüchen
Verfasst: Dienstag 3. August 2004, 12:27
von Kodjak
import von string geht net
Verfasst: Dienstag 3. August 2004, 12:36
von RainBowBender
Kodjak hat geschrieben:hm das haut nicht so hin wie es da steht kann es sein das es so aussehen muss?
Das muss auch gehen.
Mit
Code: Alles auswählen
meintext.replace('\r\n','<br />')?
meintext.replace('\n','<br />')?
ist man wahrscheinlich auf der sicheren Seite.
Verfasst: Dienstag 3. August 2004, 12:46
von Kodjak
das funktioniert nicht *kraftvoll gegen den rechner tritt und dem bildschirm ne faust gibt*
aber ich hab noch n problem:
eine db in MySQL hat die Spalte obj_text und in manchen feldern sind links drin.
diese sollen in zope, bzw im plonehelpcenter auch als link angezeigt werden wir
http://www.test.de
im mom sind die felder gefüllt wie der link hier nur werden als einfacher text anngezeigt.
wie bekomm ich das so hin das sie im PHC als richtiger link angezeigt werden???
Verfasst: Dienstag 3. August 2004, 12:55
von Dookie
Hi Kodjak,
was heisst funktioniert nicht? Fehlermeldung oder was dabei rauskommt wär nett.
Sind die Felder als Links definiert, also enthalten immer die gleichen Felder links, oder kann in den Feldern auch normaler text stehen?
Im ersten Fall mach halt
Code: Alles auswählen
als_link = '<a hef="%(feldname)s" target="_blank">%(feldname)s</a>' % Dict_mit_Feldern
Im Zweiten fall musst du mit einer Regular Expression etwas machen.
Gruß
Dookie
Verfasst: Dienstag 3. August 2004, 13:04
von Kodjak
funktioniert nicht heisst:
keine fehlermeldung, keine zeilenumbrüche
den letzten teil verstteh ich net ganz aber ich werds mal ausprobieren
Verfasst: Dienstag 3. August 2004, 13:08
von Kodjak
die db ist in mySQL in sofern wäre cool wenn mir einer n sql statement geben kann.
ich dachte so an
Code: Alles auswählen
update tabelle
set text='<a href="text" target="_blank">text</a>'
Verfasst: Dienstag 3. August 2004, 13:12
von Kodjak
hm also chef mit das mit den links soll ich per hand machen bleibt immer noch das prob mit den zeilenumbrüchen, jungs ich bin verzweifelt!!!

*singt "help" von den BEATELS*
also wie gesagt, der fehler ist das ich nichts sehe, also keine veränderung, der text wird immer noch ohne zeilenumbrüche angezeigt obwohl diese ersetzt werden.
Verfasst: Dienstag 3. August 2004, 13:26
von mawe
Hi!
Kodjak hat geschrieben:
...der text wird immer noch ohne zeilenumbrüche angezeigt obwohl diese ersetzt werden.
Also die Ersetzung hat funktioniert, oder versteh ich das falsch. Was ich nämlich oft vergesse ist folgendes:
Code: Alles auswählen
text = "halli\r\nhallo"
text.replace("\r\n","<br>")
newtext = text.replace("\r\n","<br>")
print text # -> halli\r\nhallo
print newtext # -> halli<br>hallo
Gruß, mawe
Verfasst: Dienstag 3. August 2004, 13:36
von Kodjak
noch mal der code:
Code: Alles auswählen
answer=zeile['obj_text'].replace('\r\n','<br />')+ersteller
jedoch werden die \r\n nicht ersetzt und somit werden in zope keine zeilenumbrüche gezeigt
Verfasst: Dienstag 3. August 2004, 13:39
von genrich
Sind denn überhaupt zeilenumbrüche drin???
Könnte man ja mal testen mit
Code: Alles auswählen
if "\n" in Text:
print "n ist drin!"
if "\r" in Text:
print "r ist drin!"
if "\r\n" in Text:
print "rn ist drin!"
Verfasst: Dienstag 3. August 2004, 13:49
von Dookie
Code: Alles auswählen
answer=zeile['obj_text'].replace('\r\n','\n').replace('\r','\n').replace('\n','<br />')+ersteller
print answer
jetzt is wurscht welche Zeilenumbrüche drinn sind.
Gruß
Dookie
Verfasst: Mittwoch 4. August 2004, 08:09
von Kodjak
also das problem haben wir gelöst bekommen! danke für eure hilfe.
Verfasst: Mittwoch 4. August 2004, 10:07
von genrich
Und wie sieht die Lösung nun aus???
Verfasst: Mittwoch 4. August 2004, 14:04
von Kodjak
die eigentliche DB war lotus notes basierend und im script welches die DB nach mysql importiert haben wir einfach die zeilenumbrüche mit <br> ersetzt und dann in zope durch \n ersetzt.
ja das war ne aktion hehe!