StringReplace .SRT mehrere Dateien

  • Hallo
    Versuche mehrere *.srt dateien zu ändern , skript findet aber keine .srt datei nur wenn ich richtige name eingebe z.b $str = FileRead("Datei1.srt") dann funktioniert auch .
    Was muss ich machen das mehrere Dateien gleichzeitig ändert und als original geschpeichert wird , oder als Datei1.srt ,Datei2.srt , Datei3.srt u.s.w

    THX


    Code
    $str = FileRead("*.srt")
    $str = StringReplace($str, "þ", "t")
    $str = StringReplace($str, "ã", "a")
    $str = StringReplace($str, "º", "s")
    $str = StringReplace($str, "ª", "S")
    $str = StringReplace($str, "º", "S")
    FileWrite("new.srt", $str)
  • Mit dem Befehl _FileListToArray kannst du mehrere Datein 'einlesen' und in einer Schleife abarbeiten.
    Sieht dann folgendermaßen aus.


    Spoiler anzeigen
    [autoit]

    #include<array.au3>
    #include <file.au3>

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

    dim $aFLta

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

    $aFLta = _FileListToArray(@ScriptDir & "\", "*.srt") ;Dateiliste in ein Array schreiben
    _ArrayDisplay($aFLta) ;Array anzeigen lassen

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

    For $i = 1 to UBound($aFLta) -1 ;Schleife durch das Array | -1 weil ein Array bei 0 anfängt zu zählen 0 1 2 3 = 4

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

    $str = FileRead($aFLta[$i])
    $str = StringReplace($str, "þ", "t")
    $str = StringReplace($str, "ã", "a")
    $str = StringReplace($str, "º", "s")
    $str = StringReplace($str, "ª", "S")
    $str = StringReplace($str, "º", "S")
    FileWrite(@ScriptDir & "\" & $i & "_new.srt", $str) ;datei wird durchnummeriert gespeichert 1 bis x

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

    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Cool danke dir :thumbup: es funktioniert .
    eine frage noch , kann man machen das beim speichern name behält? nicht das es 1_new.srt 2_new.srt heißt .

    Zb. Titanic-1977.SRT --> Titanic-1977_1.SRT
    Terminator 3-2003.SRT --> Terminator 3-2003_2.SRT
    u.s.w

    THX

    Einmal editiert, zuletzt von dulap (20. Dezember 2011 um 11:48)

  • Ja, in dem du (ich) mit Stringreplace die Dateiendung .srt gegen _x.srt ersetzt.

    Spoiler anzeigen
    [autoit]

    #include<array.au3>
    #include <file.au3>

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

    dim $aFLta

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

    $aFLta = _FileListToArray(@ScriptDir & "\", "*.srt") ;Dateiliste in ein Array schreiben
    _ArrayDisplay($aFLta) ;Array anzeigen lassen

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

    For $i = 1 to UBound($aFLta) -1 ;Schleife durch das Array | -1 weil ein Array bei 0 anfängt zu zählen 0 1 2 3 = 4

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

    $str = FileRead($aFLta[$i])
    $str = StringReplace($str, "þ", "t")
    $str = StringReplace($str, "ã", "a")
    $str = StringReplace($str, "º", "s")
    $str = StringReplace($str, "ª", "S")
    $str = StringReplace($str, "º", "S")

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

    $aFLta[$i]= StringReplace($aFLta[$i], ".srt", "_" & $i & ".srt") ;.srt wird durch _x.srt ersetzt
    FileWrite(@ScriptDir & "\" & $aFLta[$i], $str) ;datei gespeichert

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

    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • du könntest dir die filme auch einfach kaufen, das wäre legaler und der untertitel ist direkt mit dabei, ohne fehler usw ;)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • jetzt ist genau richtig :thumbup: THX

    @ x0r
    Titanic-1977.SRT --> Titanic-1977_1.SRT

    Terminator 3-2003.SRT --> Terminator 3-2003_2.SRT waren ja nur beispiel namen , subtitle gibts ja nicht nur für ilegalen sachen , es gibt ja noch Serien ,Dokus u.s.w
    ;)