String zusammensetzen

  • Hi Leute.

    Hatte am WE (Wetterbedingt) etwas Zeit und bin auf AutoIt gestoßen. Habs gleich mal ausprobiert und hab auch gleich die erste Frage.

    Ich möchte das wohl einfachste der Welt machen!! und scheitere :(

    Ich möchte einfach eine Datei unter anderem Namen speichern. Bei mir sieht das so aus:

    $Folder = "C:\Test"
    $oldFileName = "_CJHLL-1334342"
    $oldFileExt = "jpg"
    $newFileName = "2012-04-12 18-23-56"
    $newFileExt = $oldFileExt

    FileCopy($Folder&"\"&$oldFileName&"."&$oldFileExt,$Folder&"\"&$newFileName&"."&$newFileExt)

    Ich habe aber das Problem, dass ich nach dem neuen $newFileName einfach nicht das ".jpg" hin bekomme. Endet der neue Name nicht auf eine Zahl sondern auf einen Buchstaben, ist das kein Problem ?(

    P.S. natürlich weiß ich, dass es tausende Programme gibt, die genau das machen. Aber das ist langweilig.

  • Keine Ahnung was du meinst, geht doch alles wie es soll.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Also bei mir klappt das.

    [autoit]

    $Folder = "C:\Test"
    $oldFileName = "_CJHLL-1334342"
    $oldFileExt = "jpg"
    $newFileName = "2012-04-12 18-23-56"
    $newFileExt = $oldFileExt

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

    FileCopy( $Folder & "\" & $oldFileName & "." & $oldFileExt, $Folder & "\" & $newFileName & "." & $newFileExt)

    [/autoit]
  • Ihr habe Recht. Und damit verstehe ich die Welt noch viel weniger.

    Das Teil geht super: 

    [autoit]


    $Folder = "C:\Test"
    $oldFileName = "_CJHLL-1334342"
    $oldFileExt = "jpg"
    $newFileName = "2012:04:12 18:23:56"
    $newFileExt = $oldFileExt

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

    For $i = 1 To 5
    $Split = StringSplit($newFileName, " ")
    $newFileName1 = $Split[1]&" "&$Split[2]
    $newFileName1 = StringReplace($newFileName1,":","-")

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

    MsgBox(0,"",$Folder & "\" & $oldFileName & "." & $oldFileExt &"-------" &$Folder & "\" & $newFileName1 & "." & $newFileExt&"-------" &$i)

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

    Next

    [/autoit]

    Hier geht es nicht: 

    [autoit]


    #include "File.au3"
    #include "String.au3"
    #include "Array.au3"
    #include "UDF EXIF.au3"

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

    $Folder = FileSelectFolder("Choose a folder.", "")

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

    $FileList = _FileListToArray($Folder, "*", 1)
    If @error = 1 Then
    MsgBox(0, "", "No Folders Found.")
    Exit
    EndIf
    If @error = 4 Then
    MsgBox(0, "", "No Files Found.")
    Exit
    EndIf

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

    For $i = 1 To $FileList[0]
    $oldFile = StringSplit($FileList[$i],".")
    $oldFileName = $oldFile[1]
    $oldFileExt = $oldFile[2]

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

    $aExif = _GetEXIFData($Folder&"\"&$FileList[$i])
    if @error then Exit

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

    $Split = StringSplit($aExif[0], " ")
    $newFileName = $Split[1]&" "&$Split[2]
    $newFileName = StringReplace($newFileName,":","-")
    $newFileExt = $oldFileExt

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

    MsgBox(0,"",$Folder & "\" & $oldFileName & "." & $oldFileExt &"-------" &$Folder & "\" & $newFileName & "." & $newFileExt)
    ;FileCopy($Folder&"\"&$oldFileName&"."&$oldFileExt,$Folder&"\"&$newFileName&"."&$newFileExt)
    Next

    [/autoit]

    Und wo ist jetzt der Unterschied? Mal von _GetEXIFData abgesehen, was bei euch einen Fehler verursachen sollte.

  • Kannst du mir mal die Funktion _GetEXIFData hier hochladen? Vllt liegt der Felher darin... Ich kenn den Inhalt der Func ja nicht und was diese bewirken soll...

  • Hi Leute.

    Hab das Problem gelöst. Jedenfalls indirekt. Es liegt ganz klar an der Funktion _GetEXIFData. Da ich aber nicht so ein Experte bin, um an der Funktion den Fehler zu finden, habe ich mir eine andere UDF gesucht die so funktioniert, wie ich das möchte.

    Ich hänge euch mal das Ergebnis an.

  • Hi, warum nicht so ? 8)

    [autoit]


    $jpgBild = "ron.txt" ;i ".txt" zum testen erst erstellen !
    MsgBox(0, "Test", "Bild ohne Extension : " & StringTrimRight($jpgBild, 4))

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

    $newFileName = "2012-04-12 18-23-56"
    FileCopy($jpgBild, "C:\Bilder\" & $newFileName & ".txt", 8 + 1) ;i Flag = 1 + 8 (überschreiben + Zielverzeichnisstruktur erstellen)
    ;i Kopiert die .txt-Dateien von der Quelle in das Ziel und überschreibt Dateien im Ziel mit dem gleichen Dateinamen
    ; Ende

    [/autoit]
  • Die ganze „aufschlüsselei“ in die einzelnen Dateinamenabschnitte stammt noch von der Fehlersuche. Und wenn es geht,... 8)
    MfG ron