Hi,
ich will ein Script machen, welches mir Dateien auf einem Ordner in ein Array schreibt.
Dann wird das Seitenverhältnis der jpg-Dateien verglichen.
Bis hierher funktioniert es.
Weicht dies von 1,5 (15x10) ab, so sollen alle Bilder, bei denen es nicht stimmt in ein neues Array aufgelistet werden. (geht nicht)
Mein bisheriges Script
Spoiler anzeigen
#Include <File.au3>
#Include <Array.au3>
#include "image_get_info.au3"
Dim $TreeViewItems[50]
[/autoit] [autoit][/autoit] [autoit]#include <GuiListView.au3>
#include <GUIConstants.au3>
GUICreate("listview items",220,250, 100,200,-1,$WS_EX_ACCEPTFILES)
$button = GuiCtrlCreateButton ("Beenden",75,170,70,20)
$listview = GuiCtrlCreateListView ("Bild|Verhältnis",10,10,200,150);,$LVS_SORTDESCENDING)
$Pfad = "D:\Test\"
$untergrenze = "1.48"
$obergrenze = "1.52"
$FileList = _FileListToArray($Pfad, "*.jpg")
If @Error=1 Then
MsgBox (0,"","Ordner nicht vorhanden")
Exit
EndIf
If @Error=4 Then
MsgBox (0,"","Keine Dateien vorhanden")
Exit
EndIf
;_ArrayDisplay($FileList,"$FileList")
For $i = 1 To UBound($FileList)-1
$aInfo = _ImageGetInfo($Pfad & $FileList[$i])
$width = _ImageGetParam($aInfo, "Width")
$height = _ImageGetParam($aInfo, "Height")
If $width < $height Then
$format = $height / $width
ElseIf $width > $height Then
$format = $width / $height
Else
EndIf
If $format > $untergrenze Then
Else
;MsgBox (0,"Foto " & $FileList[$i], "Falsches Format " & Round($format, 3))
$fehler = 1
EndIf
If $format < $obergrenze Then
Else
;MsgBox (0,"Foto " & $FileList[$i], "Falsches Format " & Round($format, 3))
$fehler = 1
EndIf
GUICtrlCreateTreeViewItem($Pfad & $FileList[$i], $listview);$TreeViewItems[$i] =
Next
;GUISetBkColor (0x00E0FFFF) ; will change background color
;$item1=GuiCtrlCreateListViewItem($TreeViewItems[$i] & "|col22",$listview)
;$item1=GuiCtrlCreateListViewItem($TreeViewItems[$i] & "|col22",$listview)
;$item2=GuiCtrlCreateListViewItem($TreeViewItems[$i] & "|col12",$listview)
;$item3=GuiCtrlCreateListViewItem($TreeViewItems[$i] & "|col32",$listview)
;GuiCtrlSetState(-1,$GUI_ACCEPTFILES) ; to allow drag and dropping
GuiSetState()
;GUICtrlSetData($item2,"|ITEM1",)
;GUICtrlSetData($item3,"||COL33",)
;GUICtrlDelete($item1)
Do
$msg = GuiGetMsg ()
Select
Case $msg = $button
MsgBox(0,"listview item",GUICtrlRead(GUICtrlRead($listview)),2)
Case $msg = $listview
MsgBox(0,"listview", "clicked="& GuiCtrlGetState($listview),2)
EndSelect
Until $msg = $GUI_EVENT_CLOSE
Mittlerweile ist es etwas durcheinander.
Damit es einfacher ist versuche ich erstmal alle Elemente des array in eine GUI mit Spalten zu bekommen.
Oder einer weiß gleich, wie ich alle Dateien auflisten kann, bei denen die Bedingung (kleiner als 1,48 oder größer 1,52 erfüllt ist)
Leider will es nicht :lol:
Es werden einfach keine Daten in die GUI übernommen :hammer: