Dateiname in Ordner mit Wildcart Suchen?

  • Liebe Autoit Gemeinde,

    hier mal folgende Teile meines Codes, soweit funktioniert alles so wie ich das will ;)
    Mit FileOpenDialog wähle ich eine ID File aus, dieses wird dann in einen Ordner kopiert (%UserHome%\Daten\)
    Dann schreibe ich mittels FileWriteLine das ergebnis von FileOpenDialog in ein Text-File.
    Mir ist schon bewusst das FileOpenDialog das Ergebniss ist. Möchte auch ungerne
    FileSaveDialog anwenden müssen.

    Problem ist jetzt aber das ich gerne nicht den Source Ordner als Pfad hätte
    sondern den Zielpfad.
    Das ID File trägt einen gekürzten(auf 8 Zeichen) Usernamen Peter Mustermann -> pmusterm.id

    Frage ;))

    Variante 1

    Ich weiß wie ich mittels Array mir einen Ordnerinhalt auflisten kann.
    Da der Username aber auch anders sein kann müsste ich mittels Wildcard *.id*
    im Array suchen können oder? Denke ich zu kompliziert?

    Variante 2

    Ich frage per InputBox den Usernamen ab, wie kann ich lange Namen auf 8 Zeichen Kürzen?
    Bzw. immer der erste Buchstabe vom Vornamen + 7 Zeichen vom Nachnamen?

    Spoiler anzeigen

    $chooseIDFile = FileOpenDialog("ID File wählen", @WindowsDir & "\", "ID File (*.id)", 1)

    FileCopy (C:\test\txt, C:\User\Home\,1)

    FileWriteLine(config.txt, "KeyfileName="&$chooseIDFile)

    2 Mal editiert, zuletzt von kingjim (30. September 2010 um 18:56)

  • Ich gebe zu ich verstehe nicht ganz was du vor hast und wo dein Problem liegt.
    Ich versuche dir daher mal Hinweise zu den Teilfragen von dir zu geben:

    Problem ist jetzt aber das ich gerne nicht den Source Ordner als Pfad hätte sondern den Zielpfad.

    Den Zielpfad kennst du doch ( %UserHome%\Daten\ ) - wo ist jetzt das Problem?
    Willst du das der User den Zielpfad bestimmen kann dann nimm FileSelectFolder().

    Dateiname in Ordner mit Wildcart Suchen?

    Die Funktionen FileFindFirstFile() in Verbindung mit FileFindNextFile() können dies bewerkstelligen.

    [...] wie kann ich lange Namen auf 8 Zeichen Kürzen?

    z.B. mit FileGetShortname()

    Code
    FileCopy (C:\test\txt, C:\User\Home\,1)
    FileWriteLine(config.txt, "KeyfileName="&$chooseIDFile)


    Pfade sind Strings als Variablentyp - müssen also, wenn sie direkt eingegeben werden, in Anführungszeichen gesetzt werden.
    Desweiteren kopierst du damit nicht die ausgewählte Datei da sie ja im SourceCode nicht steht (du hast nur einen Pfad angegeben).
    Du musst da schon $chooseIDFile angeben.
    Klappt aber nur wenn nur eine Datei angegeben wurde. Ansonsten stehen mehrere Pfade getrennt durch '|' in der Variablen und in dem Fall müssen diese vorher getrennt werden.

  • Okay sorry weiß auch nicht genau wie ich es in Worte fassen will :S

    Also ich öffne mir eine Datei mittels FileOpenDialog (pmusterm.id)
    Das schreibe ich mir in die Variable $chooseIDFile.
    Ich kopiere dann die ausgewählte Datei pusterm.id an ein anderen Ort.

    Dann würde ich gerne den neuen Pfad (wo das ID-File jetzt liegt) mittels FileWriteLine in die Datei config.txt schreiben.

    Aber ich seh schon FileFindFirstFile und FileFindNextFile() sind wohl die Lösung ;)
    Manchmal ist man echt Betriebs blind...sorry...:(