Frage zu Anführungszeichen in String

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Frage zu Anführungszeichen in String

    Neu

    Moin!

    ich möchte einen String aufbauen der eine Vielzahl von Anführungszeichen beinhaltet.

    Das Ergebnis ist nachher soetwas wie:

    (command "_-PLOT" "_No" "PdfRaster1000x1000" "" "_DWG To PDF_NoPreview.pc3" "P:\KARTEN\Sielkataster_1000_PDF\Neu\2575_2020-03-26.pdf" "_No" "_Yes" "")


    Hier meine Zeile:

    VB.NET-Quellcode

    1. Dim CommandString As String = String.Format(""_-PLOT" "_No" "{0}" {1} {2} "{3}" "_No" "_Yes"", CurrentLayout, LeerCommand, LeerCommand, OutputFile4PDF.Replace("\", "\\"))


    Es wird der Ausdruck hinter string.format angemerkt mit



    Kann mir einer weiterhelfen?

    Gruß Jan

    Neu

    @jan99

    VB.NET-Quellcode

    1. MessageBox.Show("""a""")
    Da muss dann """ stehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Neu

    Morrison schrieb:

    Hi!
    Entweder man "escaped" die Anführungszeichen, oder man setzt die Anführungszeichen in Anführungszeichen..
    ..man könnte auch ein Array aus Strings erstellen und als zusätzliches Zeichen das Anführungszeichen welches dann, wenn benötigt, gesetzt wird..
    Ähm - weder noch, aber so ähnlich.
    Die Regel ist einfach: Man escaped das ", indem man es verdoppelt.
    Aber vielleicht definiere ich erstmal das Problem: In VB sind String-Literale gekennzeichnet, indem sie in DoubleQuotes - " umschlossen werden.

    VB.NET-Quellcode

    1. dim s = "Dies ist ein String"
    2. dim s2 = Dies ist keiner. 'wird daher nicht kompilieren
    Wenn nun der String selbst wiederum DoubleQuotes enthalten soll, geht das natürlich nicht, weil der Compiler denkt, an der Stelle sei der String zuende.
    Daher muss man DoubleQuotes innerhalb von String-Literalen escapen.
    Die Regel ist einfach: Man escaped das ", indem man es verdoppelt.

    Beispiel:

    VB.NET-Quellcode

    1. dim s = "Dies: "" - ist ein escaptes DoubleQuote im String-Literal"
    2. dim s2 = "Dies: " - ist ein unescaptes DoubleQuote im String-Literal" 'wird daher nicht kompilieren

    Bei komplizierten Literalen, mit mehreren DoubleQuotes wird das ganz schön unübersichtlich und schlecht leserlich.
    Wenn bekannt ist, wie das Literal unescaped rauskommen soll, dann selectiere einfach seinen Inhalt (also ohne die äusseren ", und verwende das TextErsetzungs-Feature des Editors, ersetze innerhalb der Selection " zu ""