Hi,
gibt es ne möglichkeit einzelne Dateien auszuschließen? z.b. .dat Dateien?
gruß
Hi,
gibt es ne möglichkeit einzelne Dateien auszuschließen? z.b. .dat Dateien?
gruß
Ich antworte mal so klar die wie Frage ist:
Ja.
peethebee
Wie kann ich das machen. hat jemand nen beispiel?
Beschreib mal was Du machen willst. Wobei sollen Dateien ausgeschlossen werden?
Ich habe ein Beispiel.
Ich habe einen Ordner den ich durchsuche möchte. aber dort sollen die *.dat ausgeschlossen werden.
Gruß
Ich habe einen Ordner den ich durchsuche möchte
Womit möchtest du durchsuchen? - Mit einer Lupe?
Ist es denn so schwer zu schreiben z.B.: ...Ich möchte mit FileOpenDialog Dateien zum Öffnen anbieten außer *.dat
Woher sollen wir wissen, mit welcher Funktion du "durchsuchen" willst, geschweige denn was du darunter verstehst?!
Mir war das Wort entfallen;-)
Es ist so, ich möchte den Ordner nach der neuesten Datei durchsuchen, was ja auch mit der funktion die seinerzeit von einem geschrieben wurde. Das klappt auch soweit. Aber als aktuellste datei ist eine ".dat" datei. und diese sollten ausgeschlossen werden.
Es geht um das Fileopen;-)
Also folgendes Beispiel:
sortiert nach änderungsdatum:
test.dat
1.txt
2.txt
3.txt
diese test.dat datei soll ausgeschlossen werden. aktuellste datei soll die 1.txt sein nicht die test.dat
Anmerkung die .dat Datei darf nicht gelöscht werden
Hallo.
Also Du hast dann ja bereits eine Datei.
Habe gerade in meinen Papierordner mit den Ausdrucken von Beispielscripten etwas gefunden. Habe ich Dir mal kurz von Papier abgetippt und angepaßt. Original war das Script von Oscar oder BugFix.
$file = FileOpen("neu.txt", 0) ; das ist die Quelldatei
$neu1 = FileOpen("neu1.txt", 1) ; hier sind die Zeilen mit *.dat drinne
$neu2 = FileOpen("neu2.txt", 1) ; hier sind die Zeilen ohne *.dat drinne
$letztenvier = 0
; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
; Read in lines of text until the EOF is reached
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
$text = StringRight($line,4)
If $text = ".dat" Then
If $letztenvier = 0 Then
FileWriteLine($neu1,$line&@CRLF)
Else
FileWriteLine($neu2,$line&@CRLF)
EndIf
Else
$letztenvier = 1
FileWriteLine($neu2,$line&@CRLF)
EndIf
Wend
FileClose($file)
FileClose($neu1)
FileClose($neu2)
Evtl. Hilfe es Dir ja.
Das " .dat" ist ja ne Dateiendung und steht nicht in der Zeile nicht der datei drin.
Die Suche nach der Aktuellsten Datei sieht so aus, kommt von BugFix glaube ich
#Include <File.au3>
#Include <Array.au3>
$aFilelist = _FileListToArray(@DesktopDir)
Dim $aFiledate[$aFilelist[0]+1]
For $i = 1 To $aFilelist[0]
$aFiledate[$i] = FileGetTime(@DesktopDir & '\' & $aFilelist[$i], 0, 1)
Next
MsgBox(0, 'Test', 'Die aktuellste Datei ist: ' & $aFilelist[_ArrayMaxIndex($aFiledate, 1)])
[/autoit]Wie lege ich das fest das er mir nicht die aktuellste sondern die an der 2.stelle ausgibt?
gruß
Nimm ein 2D-Array und sortiere das dann nach dem Datum Dann kannst du einen Zähler hochzählen, bis du einen Eintrag ohne .dat-Endung findest.
#Include <File.au3>
#Include <Array.au3>
$ORDNER = @DesktopDir
$aFilelist = _FileListToArray($ORDNER)
Dim $aFiledate[$aFilelist[0]+1][2]
For $i = 1 To $aFilelist[0]
$aFiledate[$i][0] = FileGetTime($ORDNER & '\' & $aFilelist[$i], 0, 1)
$aFiledate[$i][1] = $aFilelist[$i]
Next
$aFiledate[0][0] = $aFilelist[0]
_ArraySort($aFiledate, 1, 1) ; das neueste Datum als erstes
; den Zähler so lange hochzählen, bis ein Eintrag gefunden wird, der nicht mit .dat aufhört.
For $aktuellIndex = 1 To $aFiledate[0][0]
If StringRight($aFiledate[$aktuellIndex][1], 4) <> ".dat" Then ExitLoop
Next
MsgBox(0,"","Die aktuellste nicht-dat Datei ist " & $aFiledate[$aktuellIndex][1] )
[/autoit]Danke dir. hat super geklappt.