Autoit lavora su file grandi

« Older   Newer »
  Share  
KinG-ZimO
CAT_IMG Posted on 4/4/2009, 13:09     +1   -1




salve a tutti...
ho dovuto creare un prog in autoit
il quale, scegliendo una determinata directory, prendevo tutti i TXT all'interno e copiava tutti i contenuti in un'unico TXT che creava automaticamente dopo...
se i TXT sono leggeri il lavoro viene compiuto pienamente solo che se vi sono nella cartella TXTs pesanti con molte scritte dentro molti dati non vengono trascritti come faccio a risolvere il problema?? intanto vi posto il source
CODICE
$dir = FileSelectFolder ( "Seleziona la directory dove ci sono i TXT con le email", "")
                       FileChangeDir($dir)

                       $search = FileFindFirstFile("*.txt")  

; Controllo se la ricerca ha avuto successo
If $search = -1 Then
   MsgBox(0, "Error", "Non ci sono txt nella cartella")
   Exit
EndIf
While 1
   $txt = FileFindNextFile($search)
   If @error Then ExitLoop EndIf
               txt()
               msgbox(0,"","Finito! troverai nella stessa cartella il file nuovo.txt con tutte le mail")
       WEnd

Func txt()
       
$file = FileOpen($txt, 0)
; Controlla se ilfile aperto in lettura è OK
If $file = -1 Then
   MsgBox(0, "Error", "Impossibile aprire il file.")
   Exit
EndIf
$mails = fileopen($txt,0)
While 1
   $testo = FileReadLine($file)
   If @error = -1 Then ExitLoop
   $file_new = FileOpen("Nuovo.txt",1)
   FileWriteLine($file_new, $testo)
Wend
$testo = FileReadLine($file,-1)

fileclose($file)
fileclose($file_new)

EndFunc
 
Top
MatteoJug
CAT_IMG Posted on 7/4/2009, 23:34     +1   -1




Io ho sistemato un pò il codice, prova:
SPOILER (click to view)
CODICE
$dir = FileSelectFolder ( "Seleziona la directory dove ci sono i TXT con le email", "")
if @error then Exit
FileChangeDir($dir)
$nuovo = "Nuovo_.txt"
Global Const $search = FileFindFirstFile("*.txt")  
dim $testo[1]
; Controllo se la ricerca ha avuto successo
If $search = -1 Then
       MsgBox(0, "Error", "Non ci sono txt nella cartella")
       Exit
EndIf
$txt = FileFindNextFile($search)
while 1
       $testo[UBound($testo)-1] = FileRead($txt)
       ReDim $testo[UBound($testo)+1]
       $txt = FileFindNextFile($search)
       if @error then
               for $i in $testo
                       FileWriteLine($nuovo, $i)
               Next
               ExitLoop
       EndIf
WEnd
msgbox(0,"","Finito! troverai nella stessa cartella il file nuovo.txt con tutte le mail")
 
Top
1 replies since 4/4/2009, 13:09   188 views
  Share