Zeilenumbruch aus der Tabelle lesen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    wenn ich via MySQL einen Text aus der Datenbank lese, nimmt der String, der dann im Dialog verwendet wird die Umbrüche nicht wahr (\n).
    Deshalb die Frage, wie mache ich es, dass die Umbrüche auch angezeigt werden?


    Mfg;)

  • [b]Ja, wie fügst du den Text in die Datenbank ein, per UCP oder manuel per PHPMyAdmin / Navicat?


    Weil, du müsstest ja einfach in den Text, wo ein Zeilenumbruch sein soll \n reinschreiben, daneben aber noch eine Spalte, die genau den gleichen Inhalt hat, nur anstatt \n den Zeilenumbruch, also Normaldarstellung.

  • es geht mir doch gar nicht darum, wie ich den Text einfüge ist doch egal.
    Nur im Endeffekt im Spiel wird es ohne wiedergegeben.


    Den String lese ich aus und setze ihn in ein Dialog.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich hatte das Problem auch mal, hab es wie folgt gelößt.Der Tipp von XeroX ist eigentlich ganz gut.


    Anstatt "\n" habe ich als Kennzeichnung für eine Neue Zeile "~n~" benutzt und trage es auch so in die Datenbank ein.
    Beim Auslesen gibt es dann zunächst keine Problem. Nun muss man aber beim Anzeigen im Dialog ( zB ) aus dem "~n~" wieder ein "\n" machen.
    Dabei ist aber zu beachten, dass man \n als CHAR einfügen muss ( Zumindest kenn Ich keine bessere Lösung ). Es klappt nicht,wenn du "~n~" mit "\n" ersetzt. Du brauchst \n als Character.


    Kleiner Pseudocode:

    text = Hallo,ich bin der Text~n~aus der Datenbank~n~~n~Ciao.
    text = replace("~n~","%c",text) // - Ja, %c
    format( text , size , text , '\n' ) // %c mit '\c' ersetzten
    text // fertig


    Nur zum Anzeigen wandel ich das ~n~ in \n um. In die Datenbank schreibe ich es immer mit ~n~.

  • Der Zeilenumbruch ist nun mal ein besonders Sonderzeichen (?) . Alleine schon beim auslesen wirst du hier Schwierigkeiten haben, denn der Zeilenumbruch "stört".
    Du kannst es ja auch mal mit \0 probieren, da wirst du auch nur Probleme mit haben.
    Es gibt vielleicht auch bessere / einfachere Lösungen, jedenfalls kenne ich keine. Ich weiss aber nun mal auch nicht alles ;).

  • Aber dieses Sonderzeichen wird ja durch format als Zeilenumbruch gelesen.
    Wenn ich aber den string aus der Datenbank ins format hole, müsste ja das Sonderzeichen gleich gedeutet werden.


    Wirds aber nicht! Aber solange es so geht, ists ja super:) Vielen Dank!


  • es geht auch alles via forschleife das ist wohl weniger so umständlich zwar verschenkt man 2 zeichen aber ist ja auch wayne :D
    new str_len[]="Hallo,ich bin der Text~n~aus der Datenbank~n~~n~Ciao.";
    for(new i,j=strlen(str_len); i != j; ++i)if(str_len[i]=='~') str_len[i]='\32',str_len[i+1]='\32',str_len[i+2]='\n';
    //edit
    hab den string vergessen noch anzuheften new strlen ...