word array in einem Loop

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

festigrat
Posts: 44
Joined: 02 Mar 2017, 06:58

word array in einem Loop

13 Nov 2018, 03:51

Hallo,

folgendes Problem habe ich und würde mich sehr über Hilfe freuen.

Ich wähle jpg-Dateien aus und möchte diese verschieben und den Dateinamen noch in einer Datei speichern. Mit StringSplit erzeuge ich ein Word Array. word_array1 entspricht dem Verzeichnis der Dateien. Die nächsten Word Arrays entsprechen den Dateien.
Um nun die Dateien zu kopieren, verwende ich die Loop-Funtion, bei der geschaut wird, wie viele Word Arrays nun jpg-Dateien sind. Sind keine mehr vorhanden, bricht der Loop ab. Mein Problem ist nun, dass die erzeugte Variable %word_array_new% unter dem Befehl FileMove nicht mehr den ursprünglichen Dateinamen enthält, sondern logischerweise den Text "word_array2". Wie bekomme ich hier wieder den Dateinamen hin?

Schon mal vielen Dank für Eure Ideen.

Code: Select all

FileSelectFile, SelectedFile, M, Open a file, Text Documents (*.jpg)

StringSplit, word_array, SelectedFile, `n,.

MsgBox, %word_array2%

n := 1
loop
{
	Nummer := n + 1
	if word_array%Nummer% contains .jpg
	{
	word_array_new = word_array%Nummer%
	FileMove, %word_array1%\%word_array_new%, C:\Fotos\02 Export
	n := n + 1
	}
else
{
	goto Exit
}
}
Exit:
ExitApp
Rohwedder
Posts: 1527
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: word array in einem Loop

13 Nov 2018, 04:15

Hallo,
ungetestet, ersetze mal

Code: Select all

word_array_new = word_array%Nummer%
mit:

Code: Select all

word_array_new := word_array%Nummer%
festigrat
Posts: 44
Joined: 02 Mar 2017, 06:58

Re: word array in einem Loop

13 Nov 2018, 04:35

Super, vielen Dank. Das wars!
just me
Posts: 5658
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: word array in einem Loop

13 Nov 2018, 10:09

Moin,

das ist ein gutes Beispiel für die Verwendung der StrSplit() Funktion:

Code: Select all

#NoEnv
Target := "C:\Fotos\02 Export"

FileSelectFile, SelectedFiles, M3, , Dateien auswählen, Bilder (*.jpg)
If (SelectedFiles <> "") {
   SelectedFiles := StrSplit(SelectedFiles, "`n") ; Auswahl in ein Array überführen
   Folder := SelectedFiles.RemoveAt(1) ; Ordnernamen aus dem Array auslesen und entfernen
   For Each, File In SelectedFiles {
      If (SubStr(File, -2) = "jpg")
         FileMove, %Folder%\%File%, %Target%
   }
}

ExitApp

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 12 guests