Seite 1 von 2
Ein String senden, der ein String enthält ?
Verfasst: 04.04.2018 19:07
von funkheld
----------------------------
SendNetworkString(conID, "set laser To SHIP:MODULESNAMED("LaserDistModule")[0]."+Chr(10))
----------------------------
Hallo, guten Tag.
Wie kann ich bitte den String senden, der ein String mit Anführungszeichen enthält?
Die Anführungszeichen in der Klammer müssen gesendet werden.
Es kommt eine Fehlermeldung.
Danke.
Gruss
Re: Ein String senden, der ein String enthält ?
Verfasst: 04.04.2018 19:10
von RSBasic
Entweder Chr(34) oder mit ~ und \" escapen oder in Base64-String senden.
Schaffst du das mit Chr() oder mit dem Escapen? Sag bitte ja.
PS: Bitte solche Fragen zukünftig ins Anfänger-Unterforum posten.
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 08:41
von funkheld
Danke.
Ich habe chr(34) genommen.
Daran hatte ich nicht gedacht.
Gruss
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 08:43
von RSBasic
Sehr gut

Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 09:02
von RSBasic
So sieht es aus, wenn du den String escapst:
Code: Alles auswählen
SendNetworkString(conID, ~"set laser To SHIP:MODULESNAMED(\"LaserDistModule\")[0]."+Chr(10))
Finde ich besser und kürzer, als:
Code: Alles auswählen
SendNetworkString(conID, "set laser To SHIP:MODULESNAMED(" + Chr(34) + "LaserDistModule" + Chr(34) + ")[0]."+Chr(10))
D.h. den String, den du escapen möchtest, musst du zuerst mit ~ einleiten. Dann kannst du alle Anführungszeichen mit \ escapen. Also: \"
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 09:11
von ¯\_(ツ)_/¯
Coool das mit dem escape wusst ich noch nicht.
Was ist aber wenn man das Backslash schreiben möchte? Das kann man nicht mehr machen oder nur über Chr(92) ???
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 09:13
von RSBasic
Ganz einfach \\ schreiben. Dann bekommst du ein \.
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 09:56
von Micha122
Escapen sieht wirklich sauberer aus.
Kannte ich auch nicht.
Hätte ich das vorher gekannt, hätte ich mir diesen hässlichen Code erspart.
Code: Alles auswählen
EOL.s = Chr(10) + Chr(13)
SVG.s + "<?xml version="+Chr(34)+"1.0"+Chr(34)+" encoding="+Chr(34)+"UTF-8"+Chr(34)+"?>"+EOL.s
SVG.s + "<svg xmlns="+Chr(34)+"http://www.w3.org/2000/svg"+Chr(34)+EOL.s
SVG.s + "version="+Chr(34)+"1.1"+Chr(34)+" baseProfile="+Chr(34)+"full"+Chr(34)+EOL.s
SVG.s + "width="+Chr(34)+"<width>mm"+Chr(34)+" height="+Chr(34)+"<height>mm"+Chr(34)+" >"+EOL.s
SVG_Comment.s = "<!-- <Type> <Text> -->"+EOL.s
SVG_Line.s = "<line x1="+Chr(34)+"<x1>mm"+Chr(34)+" y1="+Chr(34)+"<y1>mm"+Chr(34)+" x2="+Chr(34)+"<x2>mm"+Chr(34)+" y2="+Chr(34)+
"<y2>mm"+Chr(34)+" stroke="+Chr(34)+"<color>"+Chr(34)+" stroke-width="+Chr(34)+"<Line_Thickness>mm"+Chr(34)+"/>"+EOL.s
SVG_End.s = "</svg>"
Grüße
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 10:11
von Kiffi
<OT>
@Micha122: Ein Zeilenumbruch (Dein EOL) ist unter Windows ein Chr(13) + Chr(10) (und nicht umgekehrt). PB hat eine Konstante dafür: #CRLF$
Grüße ... Peter
</OT>
Re: Ein String senden, der ein String enthält ?
Verfasst: 06.04.2018 10:20
von Josh
¯\_(ツ)_/¯ hat geschrieben:Coool das mit dem escape wusst ich noch nicht.
Was ist aber wenn man das Backslash schreiben möchte? Das kann man nicht mehr machen oder nur über Chr(92) ???
Eine Liste mit den möglichen Escape-Sequenzen findest du
hier.