• Ich hab für meine Schwester mal einen kleines Programm geschreiben, denn sie läd sich als Videos aus YouTube, und dann Stand da bei über 100 Titeln immer YouTube vor, und sie hat mich gefragt wie sie das alles auf einmal wegbekommt, da hab ich ihr gesagt das ich ihr ein Programm schreiben kann, gesagt Getan ;)
    Man kann damit so viele Datein auf einmal auswählen wie man will, und bei denen dann Einen Text ersetzen lassen, durch nichts oder was anderes, mit Beispiel in einer ListView.

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <Array.au3>
    $INI = @ScriptDir & "\Konfig.ini"
    #region ### START Koda GUI section ### Form=
    $FORM1 = GUICreate("Datei-Umbenner", 515, 476, 282, 277, 0x00040000)
    $LISTVIEW1 = GUICtrlCreateListView("Dateiname|Neuer Name|Pfad", 2, 2, 510, 326)
    GUICtrlSendMsg(-1, 4126, 0, 150)
    GUICtrlSendMsg(-1, 4126, 1, 150)
    GUICtrlSendMsg(-1, 4126, 2, 200)
    $INPUT1 = GUICtrlCreateInput(IniRead ($INI,"FileOpen","IN1",""), 2, 358, 509, 21)
    $BUTTON1 = GUICtrlCreateButton("Hinzufügen", 436, 330, 75, 25, 0)
    $BUTTON2 = GUICtrlCreateButton("Entfernen", 361, 330, 75, 25, 0)
    $LABEL1 = GUICtrlCreateLabel("Zu ersetzender Text:", 2, 340, 102, 17)
    $BUTTON3 = GUICtrlCreateButton("Ersetzen", 436, 422, 75, 25, 0)
    $INPUT2 = GUICtrlCreateInput(IniRead ($INI,"FileOpen","IN2",""), 3, 400, 509, 21)
    $LABEL2 = GUICtrlCreateLabel("Ersetzen mit:", 3, 382, 64, 17)
    $BUTTON4 = GUICtrlCreateButton("Liste Leeren", 286, 330, 75, 25, 0)
    $BUTTON5 = GUICtrlCreateButton("Beispiel anzeigen", 336, 422, 100, 25, 0)
    $Check = GUICtrlCreateRadio ("Dateien",20,425)
    GUICtrlSetState (-1,1)
    GUICtrlCreateRadio ("Ordner",80,425)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=
    GUIRegisterMsg(0x0024, "MY_WM_GETMINMAXINFO")
    While 1
    $NMSG = GUIGetMsg()
    Switch $NMSG
    Case -3
    Exit
    Case $BUTTON4
    _GUICTRLLISTVIEW_DELETEALLITEMS($LISTVIEW1)
    Case $BUTTON2
    _GUICTRLLISTVIEW_DELETEITEMSSELECTED($LISTVIEW1)
    Case $BUTTON1
    _HINZUFUEGEN()
    Case $BUTTON5
    _BEISPIEL()
    Case $BUTTON3
    _UMBENENNEN()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _HINZUFUEGEN()
    If GUICtrlRead ($Check) = 1 Then
    $FILE = FileOpenDialog("Dateiauswahl", IniRead($INI, "FileOpen", "Pfad", ""), "Alle (*.*)", 4)
    If @error Then Return
    $SFILE = StringSplit($FILE, "|")
    If $SFILE[0] > 1 Then
    IniWrite($INI, "FileOpen", "Pfad", $SFILE[1])
    If $SFILE[0] > 0 Then
    For $1 = 2 To $SFILE[0]
    GUICtrlCreateListViewItem($SFILE[$1] & "||" & $SFILE[1], $LISTVIEW1)
    Next
    EndIf
    Else
    $SFILE = StringSplit($FILE, "\")
    $Pfad1 = StringLeft ($FILE,StringLen ($FILE) - StringLen ($SFILE[$SFILE[0]]))
    GUICtrlCreateListViewItem($SFILE[$SFILE[0]] & "||" & $Pfad1, $LISTVIEW1)
    IniWrite($INI, "FileOpen", "Pfad", $Pfad1)
    EndIf
    Else
    $Ordner = FileSelectFolder ("Ordnerauswahl",Default,0,IniRead ($INI,"FileOpen","Pfad",@DesktopDir))
    If @error Then Return
    $Filter = InputBox ("Dateiendung","Gib die Dateiendung an" & @CRLF & "Beispiel: *.mp3",IniRead ($INI,"FileOpen","Filter","*.mp3"))
    If @error Then Return
    IniWrite ($INI,"FileOpen","Filter",$Filter)
    $First = FileFindFirstFile ($Ordner & "\" & $Filter)
    While 1
    $FILE = FileFindNextFile($First)
    If @error Then ExitLoop
    $SFILE = StringSplit ($FILE,"\")
    $Pfad = StringLeft ($FILE,StringLen ($FILE) - StringLen ($SFILE[$SFILE[0]]) -1)
    GUICtrlCreateListViewItem($SFILE[$SFILE[0]] & "||" & $Pfad, $LISTVIEW1)
    Wend
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _BEISPIEL()
    $TEXT = GUICtrlRead($INPUT1)
    $ER = GUICtrlRead($INPUT2)
    IniWrite ($INI,"FileOpen","IN1",$TEXT)
    IniWrite ($INI,"FileOpen","IN2",$ER)
    For $1 = 0 To _GUICTRLLISTVIEW_GETITEMCOUNT($LISTVIEW1)
    _GUICTRLLISTVIEW_SETITEMTEXT($LISTVIEW1, $1, StringReplace(_GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 0), $TEXT, $ER), 1)
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _UMBENENNEN()
    _BEISPIEL()
    For $1 = 0 To _GUICTRLLISTVIEW_GETITEMCOUNT($LISTVIEW1)
    FileMove(_GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 2) & "\" & _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 0), _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 2) & "\" & _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 1))
    Next
    _GUICTRLLISTVIEW_DELETEALLITEMS($LISTVIEW1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func MY_WM_GETMINMAXINFO($HWND, $MSG, $WPARAM, $LPARAM)
    If $HWND = $FORM1 Then
    Local $MINMAXINFO = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $LPARAM)
    DllStructSetData($MINMAXINFO, 7, 515)
    DllStructSetData($MINMAXINFO, 8, 476)
    EndIf
    EndFunc

    [/autoit]

    mfg. Jam00

    4 Mal editiert, zuletzt von Jam00 (6. Juni 2009 um 17:43)

  • Interessant, ich kann keine Datei hinzufügen, sehe nicht ob ich was hinzugefügt habe oder nicht.
    .
    EDIT: Kuck dir mal den Titel des Programms genau an :)

    Einmal editiert, zuletzt von satinez (19. März 2009 um 17:56)

  • Wie jetzt, kommt nichts in die ListView?
    Oder meinst du es wird nicht umbenannt?
    Du muss dann den Text eingeben, der ersetzt werden soll, und dann den Text mit dem der Text ersetzt werden soll!
    Also, angenommen die datei heist "Neu.txt" so, dann gibst du bei "Zu ersetzender Text" z.B. "Neu" ein und bei Ersetzen mit "Alt". Dann klcikst du auf Beispiel anzeigen, guckst ob es stimmt, und dann kannst du ersetzen anklciken, dann werden die Dateien Umbenannt

    mfg. Jam00

  • Kuck dir mal dein Skript an, führe es aus, und sag mir ob es funzt. Ich kann dir die Antwort jetzt schon geben, NEIN :)
    .
    Bevor du was hochlädst check lieber alles nochmal ^^
    Es geht nix, nur die GUI wird angezeigt.

  • Irgendwie ist das Komisch bei Sirocool geht es auch nit:-( bei mir schon, und bei meiner schwester auch!
    (Film ist in DivX mit VLC abspielen)

    mfg. Jam00

    2 Mal editiert, zuletzt von Jam00 (20. März 2009 um 01:29)

  • jop funzt, bis auf das Kopieren/Ersetzen. Wird man sicher gebrauchen können wenn es fertig ist :)
    .

    Wenn ich ersetzen drücke, passiert nichts..
    P.S. vielleicht noch eine Drag&Drop funktion einbauen xD

  • [autoit]

    #Include <File.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $aFiles, $string

    [/autoit][autoit][/autoit][autoit]

    $aFiles = _FileListToArray(@ScriptDir&"\", "*", 1)

    [/autoit][autoit][/autoit][autoit]

    ;MsgBox(0,"", $aFiles[1])

    [/autoit][autoit][/autoit][autoit]

    for $i = 1 To $aFiles[0]
    $string = StringReplace(StringRegExpReplace($aFiles[$i], "(\d| |-|\.)*?", ""), "_", " ")
    FileMove($aFiles[$i], StringUpper(StringLeft($string,1))&StringTrimLeft($string, 1))
    Next

    [/autoit]
  • du hast keinen plan von regular expressions oder?

    naja da werden jetzt bei allen mp3s die zahl davor abgeschnitten also titelnummer und alle punkte und unterstriche durch leerzeichen ersetzt