String über mehrere Zeilen

  • VB.NET

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

    String über mehrere Zeilen

    Hallo!

    Ich möchte einen sehr langen String über mehrere Zeilen in Visual Basic 2010 setzen:

    VB.NET-Quellcode

    1. Dim str As String
    2. str = <a>
    3. 12345
    4. 67890</a>


    Verwende ich das .Net Framework 4, dann geht es, mit Version 2, die ich verwenden möchte, aber nicht...
    Also bei mir geht das so:

    VB.NET-Quellcode

    1. Dim test as String
    2. test="Hallo
    3. was
    4. geht"


    EDIT: Hab denn fehler ich hab das so gemacht mit neuer zeile sry :rolleyes:

    VB.NET-Quellcode

    1. Dim test as String
    2. test="Hallo" + vbCrLf +
    3. "was" + vbCrLf +
    4. "geht"


    LÖSUNG:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim test As String
    3. test = "Hallo " +
    4. "was " +
    5. "geht"
    6. MsgBox(test)
    7. End Sub
    Mit freundlichen Gruß MyProDE. 8-)

    Meine Programmierumgebung:
    VS 2015 Ultimate - CTP 6 --- .Net Framework 4.6 - Preview --- Windows 10 TP x64

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „MyProDE“ ()

    Ich bekomme diese Fehlermeldung:

    Zeichenfolgenkonstanten müssen mit einem doppelten Anführungszeichen enden.

    Wie kann ich dieses XML-Schema aktivieren?

    Durch Option Strict On werden die beim .Net Framework 4 deaktiviert.

    ------------

    Es liegt wohl daran, dass das .Net Framework 4 entsprechende Verweise enthält, das .Net Framework 2 aber nicht..

    "XML-Literale und XML-Achseneigenschaften sind nicht verfügbar. Fügen Sie einen Verweis auf "System.Xml", "System.Xml.Linq" und "System.Core" hinzu."

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „meggy“ ()

    LÖSUNG:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim test As String
    3. test = "Hallo " +
    4. "was " +
    5. "geht"
    6. MsgBox(test)
    7. End Sub


    Geht in NET Framework:
    4.5.1
    4.5
    4
    3.5
    3
    2
    Mit freundlichen Gruß MyProDE. 8-)

    Meine Programmierumgebung:
    VS 2015 Ultimate - CTP 6 --- .Net Framework 4.6 - Preview --- Windows 10 TP x64
    Kann sein das ich deine Absicht nicht verstehe aber das geht do so... :

    VB.NET-Quellcode

    1. Dim str As String
    2. str = "Hallo" & _
    3. "was" & _
    4. "geht?"
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    ThePlexian schrieb:

    Kann sein das ich deine Absicht nicht verstehe aber das geht do so... :

    VB.NET-Quellcode

    1. Dim str As String
    2. str = "Hallo" & _
    3. "was" & _
    4. "geht?"

    Geht beides &_ ist das selbe wie + (in diesen fall)
    Mit freundlichen Gruß MyProDE. 8-)

    Meine Programmierumgebung:
    VS 2015 Ultimate - CTP 6 --- .Net Framework 4.6 - Preview --- Windows 10 TP x64

    MyProDE schrieb:

    &_ ist das selbe wie +
    ...nicht. Du könntest auch + _ schreiben, denn der _ steht nur dafür, dass die aktuelle Zeile in der nächsten Zeile fortgeführt wird. In späteren VB-Versionen hat man den _ dann optional gemacht, da der VB-Compiler "schlauer" geworden ist.
    Um Strings zu verketten verwendet man & und nicht +, auch wenn letzteres bei manchen zu funktioniern scheint. + funktioniert nämlich nur, wenn die Option Strict ausgeschaltet ist. <--- Siehe unten.

    Das hier:

    VB.NET-Quellcode

    1. Dim str As String = "ABC" & _
    2. "DEF" & _
    3. "GHI?"

    funktioniert in neueren VB-Versionen (>2008) deshalb auch so:

    VB.NET-Quellcode

    1. Dim str As String = "ABC" &
    2. "DEF" &
    3. "GHI?"


    Dieser String enthält dann aber keine Zeilenumbrüche. Die musst du via vbCrLf oder Environment.NewLine einfügen:

    VB.NET-Quellcode

    1. Dim str As String = "ABC" & Environment.NewLine &
    2. "DEF" & Environment.NewLine &
    3. "GHI?"


    Edit:
    Es gibt auch noch XML-Literals:
    stackoverflow.com/a/1674434/785210
    Sehe ich gerade zum ersten mal, scheint es aber doch irgendwie zu geben.
    Von meinem iPhone gesendet

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nikeee13“ ()

    @RushDen: Du hast recht. Das muss irgendwann auch zugelassen worden sein, zumindest für Strings auf beiden Seiten des +.
    Dim a As String = "aa" + 1 kompiliert weiterhin mit Fehler bei OS On, so wie es sein sollte.
    Von meinem iPhone gesendet
    @meggy:: Mach Dir eine List(Of String), da kannst Du dranhängen was immer Du willst und es ordentlich darstellen:

    VB.NET-Quellcode

    1. Private myList As New List(Of String)
    2. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    3. Me.myList.Clear()
    4. Me.myList.Add("ABC")
    5. Me.myList.Add("DEF")
    6. Me.myList.Add("GEH")
    7. Me.RichTextBox1.Lines = Me.myList.ToArray
    8. End Sub
    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!
    @nikeee13: Ich hab das hier mal genauer getestet. Der +-Operator geht in VB genau dann, wenn beide Operanden Strings sind.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils