Msgbox zeigt Werte nicht an

  • Hey,

    dann mach ich mal nen Thread dafür.
    Folgende Thematik:

    Ich lese den Artisten und das Album eines mp3 Files aus.
    Beides funktioniert wunderbar.

    Danach lasse ich mir den Artisten mit:

    [autoit]

    msgbox(0,"",$artist); geht

    [/autoit]

    und das Album mit:

    [autoit]

    msgbox(0,"",$artist); geht

    [/autoit]

    ausgeben. Funktioniert bestens.

    Jetzt lasse ich mir beide Werte in einer Msgbox ausgeben:

    [autoit]

    msgbox(0,"","D:\Music\" & $album & $artist)
    msgbox(0,"","D:\Music\" & $artist & $album)

    [/autoit]

    Funktioniert nicht?!

    Egal wie ich es drehe, das ergibt keinen Sinn.
    Die hintere Variable wird nicht angezeigt.

    [autoit]

    Func mp3()
    For $i = 1 To $array[0]
    $test = _ID3ReadTag($array[$i])
    $artist = _ID3GetTagField("Artist")
    $album = _ID3GetTagField("Album")
    msgbox(0,"",$album); geht
    msgbox(0,"",$artist); geht
    msgbox(0,"","D:\Music\" & $artist & "\" & $album) ; Album wird nicht angezeigt
    msgbox(0,"","D:\Music\" & $album & "\" & $artist) ; Artist wird nicht angezeigt
    Next
    Endfunc

    [/autoit]
  • erklärs mir mal bitte :)


    Erklären warum es vorher nicht funktioniert hat oder wie es jetzt funktioniert? :D

    Ich nehme einfach mal an Du meinst den letzteren Fall.
    StringFormat ist nur dafür da, das du im "Format"-String Platzhalter verwenden kannst (%s für String, %i %d für Zahlen, usw ..)

    Und er setzt die Daten nach dem Format-String halt nur in der Reihenfolge anstelle der Platzhalter ein.

    Um zum 1. Fall zu kommen.
    Ich sehe da wirklich keinen Fehler. Kann auch sein das ich schon ewig kein AutoIt mehr genutzt hab.

  • Vielleicht die String endet sich mit ein "\0", deswegen AutoIt es nicht richtig interprietiert.
    Du sagst das es night geht, aber was für ein Problem gibt es ? Ein leeres Messagebox ?

  • Las es dir mal als Binary ausgeben und schau mal ob du Steuerzeichen findest, also die ersten ASCII-Zeichen in der Tabelle.
    Die ID3-Funktionen arbeiten mit Binary-Werten. Evtl. nimmt er irgendwo ein zuviel, sodass noch ein Steuerzeichen mitkommt.

    lesolutionneur: Woher kommst du?


    Edit: Ich wusste es doch, es liegt an dem NULL-Zeichen.

    [autoit]

    MsgBox(0, "", "Hallo " & Chr(0) & "Welt")
    MsgBox(0, "", "Hallo " & "Welt")

    [/autoit]

    2 Mal editiert, zuletzt von m-obi (24. Juni 2013 um 17:08)