Ciao a tutti,
ho bisogno di spezzettare un file di testo in diversi file con lo stesso numero di righe c.a 10000 a file.
Il .txt originario pesa 80/90 MB quindi abbastanza difficile da gestire.
Mi potete aiutare?
Grazie, ciao
Ciao a tutti,
ho bisogno di spezzettare un file di testo in diversi file con lo stesso numero di righe c.a 10000 a file.
Il .txt originario pesa 80/90 MB quindi abbastanza difficile da gestire.
Mi potete aiutare?
Grazie, ciao
Bit Manent, Scripta Volant.
www.bitmanent.com
..e si, devo permettere ad un tipo di uppare via ftp un file per poi, tramite script, dividerlo, interrogare ogni singolo file, scramarlo dalle informazioni inutili ed inserirlo nel db.
Sarrebbe molto complicato con php?
grazie
Luigi
Bit Manent, Scripta Volant.
www.bitmanent.com
no, alla fine dei conti (anche se può essere lenta come operazione...), basta aprire il file con file() e usare un ciclo per scrivere gli elementi dell'array ottenuto a 10000 righe alla volta...
Ciao
..magari, il problema è che la funzione file() non processa un file di quelle dimensioni, altri + piccoli si e fin'ora non ho avuto problemi.
Ho uppato in ftp un file simile di 20mb ed è lo stesso.
Il mio target potrebbe essere c.a. 10 file da c.a. 10mb.
Grazie Luigi
Bit Manent, Scripta Volant.
www.bitmanent.com
Ho trovato la soluzione:
..ho provato a mettere anche uno sleep tra un file e l'altro ma ho notato che anche senza il server nn si impalla.codice:<?php $FileStream = fopen($FileName, "rb"); $Filetmp = fopen("tmp", "a+"); $Count = $TotalRow = 0; while(!feof($FileStream)){ $TotalRow++; $Count++; fwrite ($Filetmp, fgets($FileStream,4096)); if($Count == "10000"){ fclose($Filetmp); $Filetmp = fopen("tmp".$TotalRow, "a+"); echo $TotalRow." - ".Tempo($Init)." s "; $Count = 0; flush(); //sleep(2); } } fclose($Filetmp); fclose($FileStream); ?>
ciao e grazie
luigi
Bit Manent, Scripta Volant.
www.bitmanent.com