Variablen und Wildcards

  • Guten Morgen,

    ich habe leider im Netzt nichts passendes gefunden, deshalb stelle ich mal hier die Frage.

    ich würde gerne wie zu sehen ist bei der auswahl einer beliebigen m3u datei meine mp3listgui zeigen, aber bei der auswahl eines einzelnen titels diese dann ausblenden.
    so wie hier funktioniert es leider nicht, egal was ich wähle, wird mir in der console "m3u nicht geladen ausgegeben".
    ist es überhaupt möglich so mit wildcards zu arbeiten? gebe ich den wert zum testen ein also "m:\Mp3\xyz.m3u" dann geht es.

  • Du prüfst in diesem Fall ob der String '*.m3u' ist und nicht ob er diesen enhält.

    Was du suchst ist StringInStr():

    AutoIt
    $media = FileOpenDialog("", "", "Media (*.wma;*.mp3;*.m3u)" ,1)
    If StringInStr($media, '.m3u') Then
        ConsoleWrite("m3u gelanden")
        iniwrite_MP3()
    Else
        ConsoleWrite("m3u nicht gelanden")
        iniwrite_MP3()
        GUISetState($MP3listGui,@SW_HIDE)
    EndIf
  • DU könntest sowas machen:

    Code
    Local  $media = FileOpenDialog("", "", "Media (*.wma;*.mp3;*.m3u)" , 1)
    Switch StringRight($media, 4)
        Case ".m3u"
            ConsoleWrite("m3u gelanden" & @CRLF)
        Case ".mp3"
            ConsoleWrite("mp3 gelanden" & @CRLF)
        Case Else
            ConsoleWrite("nichts geladen" & @CRLF)
    EndSwitch

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Wenn du sicher gehen willst, das .m3u auch am Ende steht (theoretisch wäre ja auch 'ABCabc.m3u.mp3' möglich)müsstest du das so prüfen (wie UEZ oben auch):

    AutoIt
    $media = FileOpenDialog("", "", "Media (*.wma;*.mp3;*.m3u)" ,1)
    If StringRight($media, 4) = '.m3u' Then
        ConsoleWrite("m3u gelanden")
        iniwrite_MP3()
    Else
        ConsoleWrite("m3u nicht gelanden")
        iniwrite_MP3()
        GUISetState($MP3listGui,@SW_HIDE)
    EndIf