Umbenennen von Dateien

  • Hallo,

    ich bin ein Newbie.. =)
    Deshalb Entschuldige ich mich jetzt schon für meine Fehler!
    Ich möchte ein Programm schreiben, das folgendes tut:
    z.B ich hab einen Ordner wo viele MP3's drin sind, und die heissen alle so 01blabla, 02blabla, 03blabla, 02blabla usw..
    Ich möchte ein Programm schreiben, das die 01, 02, 03, 02 rauslöscht oder mit einem gewünschten Text ersetzt!
    Ich habe mit Koda mal eine GUI gemacht, die wie folgt aussieht

    Spoiler anzeigen

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>

    #Region ### START Koda GUI section ### Form=C:\Users\madmax\Documents\Koda\Forms\umbennenen.kxf
    $Form1 = GUICreate("Form1", 636, 469, 192, 124)
    $Button1 = GUICtrlCreateButton("Beenden", 288, 376, 113, 33)
    GUICtrlSetBkColor(-1, 0x646464)
    $Button2 = GUICtrlCreateButton("Starten", 426, 377, 113, 33)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $TreeView1 = GUICtrlCreateTreeView(80, 72, 233, 273)
    $StatusBar1 = _GUICtrlStatusBar_Create($Form1)
    _GUICtrlStatusBar_SetMinHeight($StatusBar1, 17)
    $Label1 = GUICtrlCreateLabel("Was soll ersetzt werden?", 360, 144, 122, 17)
    $Input1 = GUICtrlCreateInput("", 360, 160, 225, 21)
    $Label2 = GUICtrlCreateLabel("Ersatztext?", 360, 208, 56, 17)
    $Input2 = GUICtrlCreateInput("", 362, 224, 225, 21)
    $Radio1 = GUICtrlCreateRadio("Ersatztext verwenden oder nur löschen", 360, 256, 250, 41)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Group1 = GUICtrlCreateGroup("Explorer", 72, 64, 273, 289)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label4 = GUICtrlCreateLabel("Von wo bis wo? (z.B. 0-4)", 360, 76, 124, 17)
    $Input4 = GUICtrlCreateInput("", 360, 92, 225, 21)
    $MenuItem3 = GUICtrlCreateMenu("&Datei")
    $MenuItem2 = GUICtrlCreateMenuItem("Beenden", $MenuItem3)
    $MenuItem1 = GUICtrlCreateMenu("?")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch
    WEnd

    Könnte Sich jemand erbarmen mir Starthilfe zu geben?

    Vielen Dank schonmal
    Madmaxx89

    2 Mal editiert, zuletzt von Madmaxx89 (6. Juni 2009 um 19:08)

  • Okay das is sehr gut schonmal!

    aber sagen wir ich hab einen Riesen Ordner mit 1000 Liedern
    01blabla.mp3
    01blalbla.mp3
    04blabla.mp3
    07blalba.mp3
    blabla.mp3

    jetzt will ich, das ich angeben kann wieviele stellen ich entfernen kann.. (usereingabe: 2 (Stellen löschen))
    blabla.mp3
    blalbla.mp3
    blabla.mp3
    blalba.mp3
    abla.mp3

    wie mach ich das?

  • Meinst du sowas?

    Spoiler anzeigen
    [autoit]

    $Text = InputBox ("Text","Gib einen Beliebigen Text ein")
    $Abschneiden = InputBox ("Abschnitt","Wie viele Stellen sollen Abgeschnitten werden?")
    $Textschnitt = StringRight ($Text,StringLen ($Text) - $Abschneiden)
    MsgBox (0,"",$Textschnitt)

    [/autoit]

    mfg. Jam00

  • Was muss ich tun? damit er die die input box ausliest und wenn ich dann angegeben hab wieviel stellen ich abschneiden will, das er dann die anzahl der stellen abschneidet von vorne?

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=Umbenennen.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GuiListView.au3>
    #include <Array.au3>
    $INI = @ScriptDir & "\Konfig.ini"
    #region ### START Koda GUI section ### Form=
    $FORM1 = GUICreate("Datei-Umbenenner", 515, 576, 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)
    $RADIO = GUICtrlCreateRadio("Abschneiden", 10, 470)
    $LABEL3 = GUICtrlCreateLabel("Wieviel Stellen abschneiden:", 2, 500, 150, 17)
    $INPUT3 = GUICtrlCreateInput(IniRead ($INI, "FileOpen","IN3",""), 2, 520, 509, 21)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=

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

    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, "|")
    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
    $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()
    If $RADIO = False Then
    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)
    Else
    ;$Text = InputBox ("Text","Gib einen Beliebigen Text ein")
    ;$Abschneiden = InputBox ("Abschnitt","Wie viele Stellen sollen Abgeschnitten werden?")
    ;$Textschnitt = StringRight ($Text,StringLen ($Text) - $Abschneiden)
    ;MsgBox (0,"",$Textschnitt)

    EndIf
    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]

    Bitte um Hilfe!

  • Was is in der Funktion _Umbenennen falsch?

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=Umbenennen.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GuiListView.au3>
    #include <Array.au3>
    $INI = @ScriptDir & "\Konfig.ini"
    #region ### START Koda GUI section ### Form=
    $FORM1 = GUICreate("Datei-Umbenenner", 515, 576, 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)
    $RADIO = GUICtrlCreateRadio("Abschneiden", 10, 470)
    $LABEL3 = GUICtrlCreateLabel("Wieviel Stellen abschneiden:", 2, 500, 150, 17)
    $INPUT3 = GUICtrlCreateInput(IniRead ($INI, "FileOpen","IN3",""), 2, 520, 509, 21)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=

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

    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, "|")
    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
    $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()
    If $RADIO = 0 Then
    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)
    Else
    ;$Text = InputBox ("Text","Gib einen Beliebigen Text ein")
    ;$Abschneiden = InputBox ("Abschnitt","Wie viele Stellen sollen Abgeschnitten werden?")
    ;$Textschnitt = StringRight ($Text,StringLen ($Text) - $Abschneiden)
    ;MsgBox (0,"",$Textschnitt)
    For $1 = 0 To _GUICTRLLISTVIEW_GETITEMCOUNT($LISTVIEW1)
    _GUICTRLLISTVIEW_SETITEMTEXT($LISTVIEW1, $1, StringRight(_GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 0), StringLen (_GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 0) , $ER) - $input3)
    Next

    EndIf
    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]


    !
    wenn ich den Radio Button Abschneiden aktiviere, soll er die anzahl der Stellen von den Dateien abschneiden!

  • Ich habe noch ein Fehler in der Funkktion hinzufügen gefunden, den habe ich noch behoben und deine Fehler habe ich auch behoben!

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=Umbenennen.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GuiListView.au3>
    #include <Array.au3>
    $INI = @ScriptDir & "\Konfig.ini"
    #region ### START Koda GUI section ### Form=
    $FORM1 = GUICreate("Datei-Umbenenner", 515, 576, 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)
    $RADIO = GUICtrlCreateCheckbox("Abschneiden", 10, 470)
    $LABEL3 = GUICtrlCreateLabel("Wieviel Stellen abschneiden:", 2, 500, 150, 17)
    $INPUT3 = GUICtrlCreateInput("", 2, 520, 509, 21,0x2000)
    GUICtrlCreateUpdown (-1)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=

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

    Global $ER
    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()
    $Read = GUICtrlRead ($RADIO)
    $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)
    If $Read = 1 Then
    $LES = _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1)
    _GUICTRLLISTVIEW_SETITEMTEXT( $LISTVIEW1, $1, StringRight($LES, StringLen ($LES) - GUICtrlRead ($INPUT3)))
    EndIf
    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

  • ah okay.. sehr schön.. nur leider macht er es nicht!
    Er zeigt zwar das Beispiel richtig an... aber Abschneiden oder Ersetzen tut er dann nicht mehr!!

  • Oh stimmt, hab nur eine Zahl vergessen und deswegen ging es nicht X(
    Naja jetzt ist behoben!

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=Umbenennen.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GuiListView.au3>
    #include <Array.au3>
    $INI = @ScriptDir & "\Konfig.ini"
    #region ### START Koda GUI section ### Form=
    $FORM1 = GUICreate("Datei-Umbenenner", 515, 576, 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)
    $RADIO = GUICtrlCreateCheckbox("Abschneiden", 10, 470)
    $LABEL3 = GUICtrlCreateLabel("Wieviel Stellen abschneiden:", 2, 500, 150, 17)
    $INPUT3 = GUICtrlCreateInput("", 2, 520, 509, 21,0x2000)
    GUICtrlCreateUpdown (-1)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=

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

    Global $ER
    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()
    $Read = GUICtrlRead ($RADIO)
    $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)
    If $Read = 1 Then
    $LES = _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1)
    _GUICTRLLISTVIEW_SETITEMTEXT( $LISTVIEW1, $1, StringRight($LES, StringLen ($LES) - GUICtrlRead ($INPUT3)),1)
    EndIf
    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

  • Vielen Dank.. funktioniert Super..

    Respekt.. =)

    auch wenns ne leichtigkeit für dich war.. ^^