Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Spezzettare un file di testo in diversi file

    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

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ma devi per forza farlo con php?

  3. #3
    ..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

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    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

  5. #5
    ..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

  6. #6
    Ho trovato la soluzione:
    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);
    ?>
    ..ho provato a mettere anche uno sleep tra un file e l'altro ma ho notato che anche senza il server nn si impalla.

    ciao e grazie
    luigi
    Bit Manent, Scripta Volant.
    www.bitmanent.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.