Ein String senden, der ein String enthält ?

Anfängerfragen zum Programmieren mit PureBasic.
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Ein String senden, der ein String enthält ?

Beitrag 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
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ein String senden, der ein String enthält ?

Beitrag 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. :shock:

PS: Bitte solche Fragen zukünftig ins Anfänger-Unterforum posten.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Re: Ein String senden, der ein String enthält ?

Beitrag von funkheld »

Danke.
Ich habe chr(34) genommen.
Daran hatte ich nicht gedacht.

Gruss
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ein String senden, der ein String enthält ?

Beitrag von RSBasic »

Sehr gut :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ein String senden, der ein String enthält ?

Beitrag 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: \"
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Ein String senden, der ein String enthält ?

Beitrag von ¯\_(ツ)_/¯ »

Coool das mit dem escape wusst ich noch nicht. :allright:
Was ist aber wenn man das Backslash schreiben möchte? Das kann man nicht mehr machen oder nur über Chr(92) ???
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ein String senden, der ein String enthält ?

Beitrag von RSBasic »

Ganz einfach \\ schreiben. Dann bekommst du ein \.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Ein String senden, der ein String enthält ?

Beitrag von Micha122 »

Escapen sieht wirklich sauberer aus. :allright:
Kannte ich auch nicht. :oops:

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
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Ein String senden, der ein String enthält ?

Beitrag 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$

Code: Alles auswählen

SVG + "..." + #CRLF$
Grüße ... Peter

</OT>
Hygge
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Ein String senden, der ein String enthält ?

Beitrag von Josh »

¯\_(ツ)_/¯ hat geschrieben:Coool das mit dem escape wusst ich noch nicht. :allright:
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.
Antworten