Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] Lettura File

  1. #1
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219

    [C] Lettura File

    Ciao a tutti!
    Qual è il modo più veloce di leggere un file di testo in c e scriverlo in termini di tempo di esecuzione?

  2. #2
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    Re: [C] Lettura File

    Originariamente inviato da minoz
    Ciao a tutti!
    Qual è il modo più veloce di leggere un file di testo in c e scriverlo in termini di tempo di esecuzione?
    cosa? il tempo che ci impiaga? saranno millisecondi se nn meno

  3. #3
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219

    Re: Re: [C] Lettura File

    Originariamente inviato da bako
    cosa? il tempo che ci impiaga? saranno millisecondi se nn meno
    Sono millisecondi se il file è piccolo, ma devo leggere file molto grandi e quindi mi serve qualcosa che sia molto veloce!

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Visto che nella lettura di un file l'accesso al disco è l'elemento che consiziona le prestazioni, basta minimizzare il numero di accessi. Se il file non è troppo grande puoi caricarlo completamente in memoria in una volta sola, in caso contrario devi utilizzare un buffer, ad esempio di 1 MB, in cui carichi il file un po per volta.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    Originariamente inviato da anx721
    Visto che nella lettura di un file l'accesso al disco è l'elemento che consiziona le prestazioni, basta minimizzare il numero di accessi. Se il file non è troppo grande puoi caricarlo completamente in memoria in una volta sola, in caso contrario devi utilizzare un buffer, ad esempio di 1 MB, in cui carichi il file un po per volta.
    Avresti per caso qualche esempio da postare?

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Questo codice legge un intero file in un buffer che ha la dimensione del file. Se non vuoi leggere l'intero file ti allochi un buffer di dimensione fissa, ad esempio 1024 * 500 bytes (500KB), quindi esegui la fread in un ciclo while che continua finchè feof(pFile) non restituisce 1 indicando che la fine del file è stata raggiunta.

    Codice PHP:
    /* fread example: read a complete file */
    #include <stdio.h>
    #include <stdlib.h>

    int main () {
      
    FILE pFile;
      
    long lSize;
      
    char buffer;

      
    pFile fopen "myfile.txt" "rb" );
      if (
    pFile==NULL) exit (1);

      
    // obtain file size.
      
    fseek (pFile SEEK_END);
      
    lSize ftell (pFile);
      
    rewind (pFile);

      
    // allocate memory to contain the whole file.
      
    buffer = (char*) malloc (lSize);
      if (
    buffer == NULL) exit (2);

      
    // copy the file into the buffer.
      
    fread (buffer,1,lSize,pFile);

      
    /*** the whole file is loaded in the buffer. ***/

      // terminate
      
    fclose (pFile);
      
    free (buffer);
      return 
    0;


    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  7. #7
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    OK Grazie Mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.