NEWS
[gelöst] Zeichen in String einfügen
-
-
@delamaris
Ist das Javascript? -
ah habe ich vergessen ist nicht geheim
3:22:28.173 error javascript.0 (1689479) script.js.111111 compile failed: at script.js.111111:3
Cannot find name 'StringBuffer'.(2304) -
@paul53
ich weiss nicht ob das wirklich Javascript ist.habe ich hier gefunden:
https://www.delftstack.com/de/howto/java/add-char-to-string-java/ -
zeig doch mal den string den du hast.
Ist der immer gleich, oder ändert der sich.Und dann genau beschreiben was wohin soll.
-
@delamaris sagte: habe ich hier gefunden:
Javascript ist nicht Java!
-
Der String ist von Sonos Adapter current_title.
Der sieht momentan so aus "Taylor Swift - Blank Space" und änder sich natürlich.
Mein Display hat in 1 Linie aber nur 17 Zeichen sichtbar.
Also müsste nach dem 17 Zeichen das "[l4c1]" eigefügt werden damit der Rest vom String in eine neue Zeile kommt. -
Lösung:
var dp = "Taylor Swift - Blank Space"; var neu_dp = dp.substring(0,17) + "[l4c1]" + dp.substring(17,dp.length); log (neu_dp);
-
@delamaris sagte: nach dem 17 Zeichen das "[l4c1]" eigefügt werden
Javascript für ioBroker:
// IDs anpassen! const idSonos = 'sonos.0.abc'; const idDisp = 'xyz'; on(idSonos, function(dp) { let str = dp.state.val; if(str.length > 17) str = str.substring(0, 17) + '[l4c1]' + str.substring(17); setState(idDisp, str); });
EDIT: Es sieht sicherlich besser aus, wenn man das letzte Leerzeichen in den ersten 17 Zeichen durch die Zeilenschaltung ersetzt.
if(str.length > 17) { let space = str.lastIndexOf(' ', 17); if(space > 10) str = str.substring(0, space) + '[l4c1]' + str.substring(space + 1); else str = str.substring(0, 17) + '[l4c1]' + str.substring(17); }
-
Boah, es funktioniert.
Vielen vielen Dank an alle Beteiligten.
-
@delamaris sagte: es funktioniert.
Dann setze bitte das Thema in der Überschrift des ersten Beitrags auf [gelöst].