Text mit ""?

  • Allgemein

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von haiyyu.

    Text mit ""?

    Hallo Commi. :)
    Ich möchte gerne einen
    Text in die TextBox ausgeben.
    Der text ist:

    XML-Quellcode

    1. <?xml version="1.0" ?>

    Nun habe ich:

    VB.NET-Quellcode

    1. TextBox.Text = "<?xml version="1.0" ?>"

    wenn ich das richtig mache sieht das so aus:

    VB.NET-Quellcode

    1. TextBox.Text = "<?xml version=1.0 ?>"

    der Text wird dann ausgegeben:

    XML-Quellcode

    1. <?xml version=1.0 ?>

    aber bei 1.0 müssen ja diese (") zeichen hin, wie kann ich die ausgeben?
    Chr(34)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    ErfinderDesRades schrieb:

    aber xtts02s Variante ist doch viel einfacher und leserlicher, und dassis halt das SprachFeature, was VB für diesen Fall vorsieht.

    Finde diese Methode zwar einfacher und die Anwendung geht auch schneller, aber vorallem bei Codewirrwarr mit Strings elc wo man viele Anführungszeichen braucht, verliert man schnell mal den überblick.
    "I think Microsoft has abused the Windows brand so much that it has lost its cachet."
    Paul Thurrott
    Weitere Alternaive wäre, das ganze in eine Funktion auszulagern:

    VB.NET-Quellcode

    1. Private Function QuoteText(ByVal input As String) As String
    2. Return Convert.ToChar(34) & input & Convert.ToChar(34)
    3. End Function

    Aufrufen:

    VB.NET-Quellcode

    1. MessageBox.Show("Der folgende Text soll in " & Me.QuoteText("Anführungszeichen") & " erscheinen.")

    Memo schrieb:

    @xtts02
    Was soll der Schwachsinn?! Die "" sind doch viel einfacher! :thumbdown:

    1. Geschmacksache. Wenn dieser Fall nur einpaar mal vorkommen, dann kann man direkt reinschreiben. Ich hatte oft gunug Situationen erlebt, bei der durch die Auslagerung in der Extra-Funktion der Gesamttext übersichtlicher wirkt. Da sehe ich sofort, welche Textstellen am Ende in Anführungszeichen werden.
    2. Wie bereits erwähnt, soll dies aufzeigen, wie es noch möglich wäre. Ob einer es verwendet, bleibt ihm überlassen.
    Und weil ich meinen Senf dazugeben muss:

    Das ist ein Codeschnipsel, das die Variable Count immer solange hochzählt, bis keine Datei mit der Zahl im Name existiert.

    VB.NET-Quellcode

    1. Dim NewPath As String = ActualFiles.Item(i).Remove(ActualFiles.Item(i).LastIndexOf("\")) & "\" & Panel_TextBox.Text
    2. Do While IO.File.Exists(NewPath.Remove(NewPath.LastIndexOf(".")) & If(Count = 0, "", Count.ToString) & "." & NewPath.Split("."c).Last)
    3. Count += 1
    4. Loop

    Wenn man NewPath jedesmal in der zweiten Zeile mit >>ActualFiles.Item(i).Remove(ActualFiles.Item(i).LastIndexOf("\")) & "\" & Panel_TextBox.Text<< ersetzt wird der Code schon sehr unleserlich. Wenn jetzt auch noch irgendwo Anführungszeichen drinstehen sollen (mit der ""-Methode) dann wird's extrem kompliziert.
    Aber nur für Label1.Text = "<Text in ""Anführungszeichen"">" dürfte es reichen.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Hi Niko!

    Vlt. kannichdir (als Senf zum Senf ;)) 2 meiner String-Extensions andienen:

    VB.NET-Quellcode

    1. ''' <summary>gibt den String-Abschnitt links des ersten gefundenen Matches zurück</summary>
    2. <Extension()> _
    3. Public Function LastLeftCut(ByVal Subj As String, ByVal Pattern As String) As String
    4. Dim i = Subj.LastIndexOf(Pattern)
    5. Return If(i >= 0, Subj.Remove(i), Nothing)
    6. End Function
    7. ''' <summary> verkettet alles </summary>
    8. <Extension()> _
    9. Public Function [And](ByVal Subj As String, ByVal ParamArray others() As Object) As String
    10. Return String.Concat(Subj, String.Concat(others))
    11. End Function

    Sowas kannste in irgendein Public Modul schreiben, und dann kannstedann wie folgt formulieren:

    VB.NET-Quellcode

    1. 'Dim NewPath = ActualFiles.Item(i).Remove(ActualFiles.Item(i).LastIndexOf("\")) & "\" & Panel_TextBox.Text
    2. Dim NewPath = ActualFiles(i).LastLeftCut("\").And("\", Panel_TextBox.Text)

    Auch deine Schleife ist vlt. entbehrlich:

    VB.NET-Quellcode

    1. With Panel_TextBox.Text
    2. i = .LastIndexOf(".")
    3. Dim pattern = .Remove(i).And("*", .Substring(i))
    4. Dim Count = Directory.GetFiles(ActualFiles(i).LastLeftCut("\"), pattern).Length
    5. End With

    (Hat allerdings den funktionalen Unterschied, dass "*" auch auf nicht-ZahlZeichen matcht, während die Count-Schleife ja sicher nur auf Zahlen testet.)

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

    inu schrieb:

    Solangsam wirds komplizierter

    Das seh ich auch so! ^^
    Es ist echt der Wahnsinn was man alles anrichtet um ein " in einen String einzufügen!
    Warum nicht:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Sub Main()
    2. Dim str As String = "Hallo"
    3. For index As Integer = 1 To 1
    4. For index1 As Integer = 1 To 1
    5. For index3 As Integer = 1 To 1
    6. For index4 As Integer = 1 To 1
    7. For index5 As Integer = 1 To 1
    8. If True Then
    9. If True Then
    10. Console.WriteLine(str & "" & "" & GetAnführungszeichen1())
    11. End If
    12. End If
    13. Next
    14. Next
    15. Next
    16. Next
    17. Next
    18. Console.ReadLine()
    19. End Sub
    20. Function GetAnführungszeichen1() As String
    21. Return GetAnführungszeichen2()
    22. End Function
    23. Function GetAnführungszeichen2() As String
    24. Return ChrW(34)
    25. End Function


    Weil es etwas komplziert ist!
    Weil es etwas einfacher geht!

    Das könnte man von den Erweiterungen, sehr interressanten Methoden blablablub sagen. :wacko:
    (Da war ich mit einer sinnlosen Funktion als Vorschlag harmlos :S )
    XD @Memo: Was soll daran nicht stimmen? Ist doch alles schöner, sauberer Code. <*Zwinker zwinker*

    @ErfinderDesRades: Die Idee ist super, allerdings müsste ich das ganze in ein extra Modul packen, was dann doch wieder etwas umständlicher wird.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Zeig mal deinen Code.
    Klammern in Zeichenketten sollten eigentlich problemlos funktionieren.

    VB.NET-Quellcode

    1. ' Beispiel
    2. Dim Blub As String = "Ich bin ein Text (mit Klammer) und fühle mich toll (sehr toll)."