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;)
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]Ich würde es halt von der MySQL Basis auf 2 Einträge in der Datenbank, einen normalen und einen, wo Umbruche mit \n dargestellt werden.
Wie meinst du das?:D
[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.
[b]Ja, da wo du den Text eingegeben hast, bei einem Zeilenumbruch einfach \n, ich verstehe dein Problem nicht, das klappt doch.
http://wiki.sa-mp.com/wiki/Strfind
Damit suchst du nach \n
http://wiki.sa-mp.com/wiki/Strdel
damit entfernst du es
http://wiki.sa-mp.com/wiki/Strins
damit fügst du ~n~ ein.
Alternativ du speicherst es direkt mit ~n~ ein
PS: Wenn es ein Gametext oder TEXTDRAW ist
Alles anzeigenhttp://wiki.sa-mp.com/wiki/Strfind
Damit suchst du nach \n
http://wiki.sa-mp.com/wiki/Strdel
damit entfernst du es
http://wiki.sa-mp.com/wiki/Strins
damit fügst du ~n~ ein.
Alternativ du speicherst es direkt mit ~n~ ein
PS: Wenn es ein DIALOG oder TEXTDRAW ist
[b]Textdraw ja, aber beim Dialog mit \n.
Oops meinte GameText war Gedanklich irgentwie beim falschen Wort xP
Hilft mir alles nicht weiter.
Nutze für den Dialog ja schon \n. Wird aber einfach als \n angezeigt.
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~.
Beim ersten probieren klappt es auf jedenfall.
Gibt es einen Grund, wieso das so umständlich ist?:S
Aber vielen Dank!
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!
Alles anzeigenIch 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~.
es geht auch alles via forschleife das ist wohl weniger so umständlich zwar verschenkt man 2 zeichen aber ist ja auch wayne
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 ...