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

    [C] Leggere tutto il contenuto di un file

    Ciao a tutti, vorrei sapere se c'è un modo per leggere l'interno contenuto di un file all'interno di una stringa senza sprechi di memoria o riallocazioni continue di questa.

    ciao
    eXtending-Php.net coming soon ...

  2. #2
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    Re: [C] Leggere tutto il contenuto di un file

    Originariamente inviato da Dark Bard
    Ciao a tutti, vorrei sapere se c'è un modo per leggere l'interno contenuto di un file all'interno di una stringa senza sprechi di memoria o riallocazioni continue di questa.

    ciao
    Puoi guardare quanti byte è grosso il file (ti sposti all'ultimo carattere e guardi a che posizione ti trovi), quindi crei un array di char grosso la dimensione del file e ci sputi dentro tutto leggendo carattere per carattere.
    Ricorda che l'ultimo carattere che leggerai vale -1, e' solo un carattere oltre la fine del file, scartalo.
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  3. #3
    codice:
    #include <stdio.h>
    
    int main()
    {
        FILE *p;
        char *s;
        long i = 0;
        
        /* apro il file in lettura (binaria) */
        p = fopen("miofile.txt", "rb");
        
        /* mi posiziono alla fine del file */ 
        fseek(p, 0, SEEK_END);
        /* assegno ad 'i' la grandezza in byte del file */ 
        i = ftell(p);
    
        /* alloco alla stringa 's' la grandezza del file */
        s = (char*) malloc(i * sizeof(char));
        
        /* mi posiziono all'inizio del file */
        fseek(p, 0, SEEK_SET);
        /* inserisco in 's' il contenuto del file */
        fread(s, i * sizeof(char), 1, p);
    
        /* chiudo lo stream con il file */
        fclose(p);
    
        return 0;    
    }
    ...Terrible warlords, good warlords, and an english song

  4. #4
    e se volessi mettere ogni riga del file in una lista ???
    come si puo' fare ???
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

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.