Strings verketten funktioniert nicht

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ruediger2301.

    Strings verketten funktioniert nicht

    Hallo

    ich hole mir aus einer MP3 Datei die ID3 tags song und artist.
    Entferne mit TrimEnd die überflüssigen Leerzeichen.
    Bis hierher ist alles OK.
    Beim zusammensetzen von artist und song zu einem String sind komischerweise
    die anderen Leerzeichen beim 1.Teil wieder da.
    Das Gleiche ist bei teil1, teil2.
    Ich kann die Reihenfolge vertauschen das Ergebnis ist dasselbe.
    Wenn ich 3 mal teil1 verkette sind der erste und zweite Teil wieder mit allen Leerzeichen.
    Der dritte Teil ist OK.
    Ich weiss nicht mehr weiter, vielleicht hat jemand eine Idee.
    MfG
    Rudi



    VB.NET-Quellcode

    1. Private Sub titel()
    2. Dim fs As FileStream, br As BinaryReader
    3. fs = New FileStream(satz, FileMode.Open, FileAccess.Read) : br = New BinaryReader(fs)
    4. Dim file As New FileInfo(satz) : Dim tagposition As Integer = CInt((file.Length - 128))
    5. fs.Position = tagposition + 3 : song = br.ReadChars(30)
    6. fs.Position = tagposition + 33 : artist = br.ReadChars(30)
    7. artist.Trim() ' ist OK "La Barberia Del Sur"
    8. song.Trim() ' ist OK "Alegria de vivir"
    9. Dim test As String
    10. Dim teil1 As String
    11. Dim teil2 As String
    12. test = ""
    13. teil1 = artist.TrimEnd() ' ist OK "La Barberia Del Sur"
    14. teil2 = song.TrimEnd() 'ist OK "Alegria de vivir"
    15. test = teil1.TrimEnd() & " - " & teil2.TrimEnd() ' verkehrt "La Barberia Del Sur - Alegria de vivir"
    16. ListBox2.Items.Add(artist & " - " & song)
    17. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Hängen vielleicht deine Leerzeichen/Tabs bei teil2 am Anfang? 8o

    VG,
    Acr0most :thumbsup:
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @ruediger2301 Lies mal die Länge der Strings aus und vergleiche die Länge mit der Anzahl der Zeichen.
    Möglicherweise ist da am Ende ein 0-Char dran, das musst Du dann noch weg-Trimmen:

    VB.NET-Quellcode

    1. txt = txt.TrimEnd(Convert.ToChar(0))
    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!
    Ähm, das gleiche Problem hatte ich auch mal..
    ..da waren im ID3Tag Leerzeichen oder TABs vorhanden..hab auch bissl getüftelt bis ich das raus hatte..
    ..kann jetzt spontan aber leider keine Lösung anbieten..
    ..ich glaub ich hab nach CLRF oder sowas gesucht und die dann ersetzt mit String.Replace

    muss nachher nochmal graben, sry