ich glaube
[autoit]$LVS_EX_CHECKBOXES
[/autoit]
ist ein listview stil, wenn du guictrlcreatelistview anwendest, als stil bzw exstil
ich glaube
[autoit]$LVS_EX_CHECKBOXES
[/autoit]
ist ein listview stil, wenn du guictrlcreatelistview anwendest, als stil bzw exstil
vielen dank das du dich drum bemühst, aber bei mir bleibt er rekursiv und will nicht mehr raus (endlos)
bei meinem script hat er mir aber auch die ordner . und .. angezeigt, die garnicht vorhanden waren
Jetzt liegt es am auflisten der remote ordner auf dem ftp server in arrays:
Func _FTPGetAllFolders($FTPPath = "", $FTPSubPath = "0")
If $FTPSubPath = "0" Then
_FTP_DirSetCurrent($FTPConnect, "/")
Else
_FTP_DirSetCurrent($FTPConnect, $FTPPath & "/")
EndIf
ConsoleWrite(_FTP_DirGetCurrent($FTPConnect) & @CRLF)
$FTPFolderList = _FTP_ListToArray($FTPConnect, 1)
If $FTPFolderList[0] = 0 Then MsgBox(0,"","return")
For $p = 1 To $FTPFolderList[0]
If Not StringInStr($FTPPath & $FTPFolderList[$p], ".") Then
_ArrayAdd($RemoteFolderListResult, $FTPPath & $FTPFolderList[$p])
_FTPGetAllFolders($FTPPath & $FTPFolderList[$p] & "/", $FTPFolderList[$p])
EndIf
Next
EndFunc
ok, schreib dann hier
Herzlichen willkommen digger...
...xD
ne
vom ftp server die remote files rekursiv in ein array ausgeben
aber es will nicht wie ich will, das ist mein 100. versuch
danke für deine mühe, aber das habe ich ja schon
habe dir in der email geschrieben das das auslesen der remote files in ein array nicht geht, das sind ja die lokalen dateien, das habe ich ihm thread leider vergessen
so war mein versuch:
Func _FTPGetAllFolders($FTPPath = "", $FTPSubPath = "0")
If $FTPSubPath = "0" Then
_FTP_DirSetCurrent($FTPConnect, "/")
Else
_FTP_DirSetCurrent($FTPConnect, $FTPPath)
EndIf
ConsoleWrite(_FTP_DirGetCurrent($FTPConnect) & @CRLF)
$FTPFolderList = _FTP_ListToArray($FTPConnect, 1)
If $FTPFolderList[0] = 0 Then MsgBox(0,"","return")
For $p = 1 To $FTPFolderList[0]
If Not StringInStr($FTPPath & $FTPFolderList[$p], ".") Then
_ArrayAdd($RemoteFolderListResult, $FTPPath & $FTPFolderList[$p])
_FTPGetAllFolders($FTPPath & $FTPFolderList[$p] & "/", $FTPFolderList[$p])
EndIf
Next
EndFunc
danke trotzdem für die mühe
jap
mit fileopendialog und unten dann die dateien in der der inhalt steht in einem log
wäre geil wenn man doppelklick draufmachen kann und dann öffnet man die datei
habe es jetzt mit arrays gemacht
like this?
#include <File.au3>
#include <Array.au3>
Global $Ordner = @ScriptDir & "\"
Global $SearchString = "Montag"
Global $FolderListResult[1]
Global $Result[1]
_GetAllFolders($Ordner)
_ArrayDisplay($FolderListResult)
ConsoleWrite($FolderListResult[0] & @CRLF)
For $l = 1 To $FolderListResult[0]
_Search($FolderListResult[$l])
Next
;_ArrayDisplay($Result)
Func _Search($SearchPath)
$FileList = _FileListToArray($SearchPath, "*", 1)
For $i = 1 To $FileList[0]
$ReadedFile = FileRead($FileList[$i])
If StringInStr($ReadedFile, $SearchString) Then
_ArrayAdd($Result, $FileList[$i])
EndIf
Next
EndFunc
Func _GetAllFolders($Ordner)
_ArrayAdd($FolderListResult, $Ordner)
$FolderList = _FileListToArray($Ordner, "*", 2)
If $FolderList = 0 Then Return
For $i = 1 To $FolderList[0]
_GetAllFolders($Ordner & $FolderList[$i] & "\")
Next
EndFunc
so gehts aber nicht, er gibts nicht aus
[autoit]_GetAllFolders($Ordner)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($FolderListResult) ;hier zeigt er noch alles an
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]ConsoleWrite($FolderListResult[0] & @CRLF) ;dann gehts hier und...
[/autoit][autoit][/autoit][autoit]For $l = 1 To $FolderListResult[0] ;...hier nicht mehr
[/autoit][autoit][/autoit][autoit]_Search($FolderListResult[$l])
[/autoit][autoit][/autoit][autoit]Next
[/autoit][autoit][/autoit][autoit];_ArrayDisplay($Result)
[/autoit]Hallo,
ich habe sehr viele Dateien auf meinem PC in einem Ordner mit verwertbaren daten,
jetzt wollte ich, das ich nicht immer so ewig brauche, ein Script schreiben das alle Dateien in einem Ordner und deren Unterordnern durchsucht nach einem bestimmten Schlagwort
was brauche ich? wie gehe ich vor?
mfg
ok,
ich bin jetzt soweit, er erstellt Ordner und Dateien, das Problem ist nur:
es ist so aufgebaut
Ordner/SubOrdner/SubSubOrdner/test.txt
Ordner2/test.txt
Ordner3/SubOrdner3/SubSubOrdner/test.txt
Ordner4/test.txt
test.txt
erstellt: grün
nicht erstellt: rot
es fällt auf das er die letzte datei im letzten ordner nicht erstellt
Func _FTPFilePut($LocalFile, $RemoteFile)
If _FTP_FilePut($FTPConnect, $LocalFile, $RemoteFile) Then
ConsoleWrite("Upload: Erfolgreich (" & $LocalFile & ")" & @CRLF)
Else
ConsoleWrite("Upload: Fehlgeschlagen (" & @error & ") (" & $LocalFile & ")" & @CRLF)
EndIf
EndFunc
Func _PutAllFiles($LocalPath)
$FileList = _FileListToArray($LocalPath, "*", 1)
If $FileList = 0 Then Return
For $l = 1 To $FileList[0]
_FTPFilePut($LocalPath & $FileList[$l], $FileList[$l])
Next
EndFunc
Func _PutAllFolders($LocalPath, $SubPath = "0")
$LocalFolderList = _FileListToArray($LocalPath, "*", 2)
If $LocalFolderList = 0 Then Return
If @error = 4 Then $SubPath = "0"
For $i = 1 To $LocalFolderList[0]
If $SubPath = "0" Then
_FTP_DirSetCurrent($FTPConnect, "/")
Else
_FTP_DirSetCurrent($FTPConnect, $SubPath)
EndIf
If _FTP_DirCreate($FTPConnect, $LocalFolderList[$i] & "/") Then
ConsoleWrite("FTPDirCreate: Erfolgreich (" & $LocalFolderList[$i] & ")" & @CRLF)
Else
ConsoleWrite("FTPDirCreate: Fehlgeschlagen (" & @error & ") ("& $LocalFolderList[$i] & ")" & @CRLF)
EndIf
_PutAllFiles($LocalPath & $LocalFolderList[$i] & "\")
_PutAllFolders($LocalPath & $LocalFolderList[$i] & "\", $LocalFolderList[$i])
Next
EndFunc
gott wie doof
ich adchte das wäre nur zum lesen der hauptordner..
ich schaue es mir mal genauer an
also habs jetzt gecheckt, er erstellt zwar ordner aber keine unterordner, der ballert einfach alle ordner ins hauptverzeichnis
[autoit]getallsubfolders($Ordner,$aResult)
[/autoit][autoit][/autoit][autoit]func getallsubfolders($Ordner, $array)
[/autoit][autoit][/autoit][autoit];local $aTemp
[/autoit][autoit][/autoit][autoit]$aTemp = _filelisttoarray($Ordner,"*",2)
if $aTemp = 0 then return
for $i=1 to $aTemp[0]
_FTP_DirCreate($FTPConnect, $aTemp[$i])
getallsubfolders($Ordner & $aTemp[$i] & "\", $aResult)
next
endfunc
[/autoit]die hieß nur sinlgefileput weil ich 2 funktionen hatte und coole namen brauchte
ahso dh ich muss immer in einer for schleife eine for schleife für den nächstes ordner haben?
ich komm da manchma net mit, ich habs mit den2 funktionen jetzt so,das die dateien und ordner hochgeladen werden
ich komme mit dem rekursiven nicht mit, ich weiß das in der funktion wenn das und das zutrifft/oder nicht nochmal die gleiche funktion kommt aber so klar ist mir das alles nicht
also ist meine funktion nicht das richtige?
das ist jetzt für die einfachen dateien zu finden und hochzuladen:
[autoit]Func _GetAllFiles()
$FileList = _FileListToArray($Ordner, "*", 1)
For $i = 1 To $FileList[0]
_FTPFilePut($Ordner & $FileList[$i], $FileList[$i])
Next
EndFunc
Func _GetAllSubFolders()
$SubFolderList = _FileListToArray($Ordner, "*", 2)
For $i = 1 To $SubFolderList[0]
_FTP_DirCreate($FTPConnect, $SubFolderList[$i])
Next
EndFunc
korrekt so?
funkt nämlich 1a
YOU MAD BROOOO !? es geht hab arrays nie gecheckt aber jetzt isses echt easy going
so problem ist jetzt nurnoch wie ich in ordner die dateien und ordner auslese, wenn das ordner in ordner in ordner in ordner in ordner blablabla ist, wie regel ich das am bangerangsten?
mfg
ja gut, welche befehle brauche ich dafür?
bestimmt stringregexp?
Func _searchFiles($path, $iMode = 0, $TrimPath = "")
Local $rFiles = ""
;If StringRight($path, 1) <> "\" Then $path &= "\"
$hSearch = FileFindFirstFile($path & "*.*")
If @error Or $hSearch = -1 Then Return SetError(-1, "", "")
While 1
$sfile = FileFindNextFile($hSearch)
If @error Then ExitLoop
If @extended Then
$rFiles &= _searchFiles($path & $sfile & "\", 0, $TrimPath)
Else
$rFiles &= StringTrimLeft($path & $sfile & @CR, StringLen($TrimPath))
EndIf
WEnd
FileClose($hSearch)
If $iMode = 1 Then Return StringSplit(StringTrimRight($rFiles, StringLen(@CR)), @CR)
_FTPFilePutSingleFile($rFiles)
EndFunc
nutze ich um jetzt die test.txt rauszuholen aber die will nicht hochgeladne werden :o
so sieht mein scirpt aus (daten geändert es kommt als error -1 beim upload)
#include <FTPEx.au3>
#include <File.au3>
#include <Array.au3>
$Name = "Sync"
$Ordner = @AppDataDir & "\" & $Name & "\"
Global $ServerName = 'ft'
Global $Username = "ftp18"
Global $Password = "lolip9"
Global $LocalFile = $Ordner & "test.txt"
Global $RemoteFile = "/test.txt"
If Not FileExists($Ordner) Then
DirCreate($Ordner)
EndIf
_searchFiles($Ordner)
[/autoit] [autoit][/autoit] [autoit]Func _searchFiles($path, $iMode = 0, $TrimPath = "")
Local $rFiles = ""
;If StringRight($path, 1) <> "\" Then $path &= "\"
$hSearch = FileFindFirstFile($path & "*.*")
If @error Or $hSearch = -1 Then Return SetError(-1, "", "")
While 1
$sfile = FileFindNextFile($hSearch)
If @error Then ExitLoop
If @extended Then
$rFiles &= _searchFiles($path & $sfile & "\", 0, $TrimPath)
Else
$rFiles &= StringTrimLeft($path & $sfile & @CR, StringLen($TrimPath))
EndIf
WEnd
FileClose($hSearch)
If $iMode = 1 Then Return StringSplit(StringTrimRight($rFiles, StringLen(@CR)), @CR)
_FTPFilePutSingleFile($rFiles)
EndFunc
Func _FTPFilePutSingleFile($LocalFile)
$FTPOpen = _FTP_Open($Name)
$errOpen = @error
If Not @error Then
$FTPConnect = _FTP_Connect($FTPOpen, $ServerName, $Username, $Password)
$errFTP = @error
If Not @error Then
MsgBox(1,$RemoteFile,$LocalFile)
$LocalFile = $LocalFile
If _FTP_FilePut($FTPConnect, $LocalFile, $RemoteFile) Then
ConsoleWrite("Upload: erfolgreich" & @CRLF)
Else
ConsoleWrite("Upload: fehlgeschlagen " & " " & @error & @CRLF)
EndIf
Else
MsgBox(0, "Connect", "fehlgeschlagen")
ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
EndIf
Else
MsgBox(0, "Open", "fehlgeschlagen")
ConsoleWrite("Open " & " " & $errOpen & @CRLF)
EndIf
_FTP_Close($FTPOpen)
EndFunc
ok vielen dnak für die ideen
ich setze erstmal das dropbox teil um
aber das problem ist wie kann ich:
- alle dateien und unterordner in einem Ordner auslesen lassen?
- alle dateien und unterodner auf dem ftp server in einem ordner auslsesen lassen? (_ftp_filelist2array oder so ähnlich liest ja nur die dateien aus (?))
Dankeschön soweit,
gibt es keine möglichkeit dateien auf ein ftp server zu laden (möglichst einfach ohne die eigentlichen ftp befehle zu nutzen)?
ich hätte jetzt noch 2 fragen,
erstmal wie kann ich alle dateien und unterordner in einem Ordner auslesen lassen?
dann noch was könnte man mit tcp sinnvolles machen auser ein chat?
mfg
Hallo
mir ist die idee gekommen Dropbox nachzuprogrammieren (ICH WILL
>nicht< DROPBOX NUTZEN UND AUCH KEINE ANDERE PROGRAMME) und wollte
mal fragen, da ich tcp neu entdeckt habe, per tcp dateien auf mein ftp
server hochzuladen,
wenn das gehen sollte, wie geht es?
was ich bräuchte wäre evtl ein beispiel/tutorial oder gegebenenfalls ein paar Befehle die ich dazu benötige
mfg,thx
HotKeySet("{F1}", "Speichern")
HotKeySet("{F2}", "Wiedergeben")
$Input = InputBox("Titel", "schreib hier was rein..")
IniRead("Data.ini", "Sektion", "Key", "schreib hier was rein..")
Func Speichern ()
IniWrite("Data.ini", "Sektion", "Key", GUICtrlRead($Input))
EndFunc
Func Wiedergeben()
Send(GUICtrlRead($Input))
EndFunc
kannste ja bisschen abändern hab jetzt nicht großartig was angeben, mit dem kannste dir angucken und lernen wies weitergeht und wie man die funktionen nutzt (offline hilfe, ein wort markieren und F1 drücken)