Come da titolo, come si determina la lunghezza di un file?
Possibilmente rispondete presto...
Come da titolo, come si determina la lunghezza di un file?
Possibilmente rispondete presto...
Provato con sizeof(nomefile); ?
------------------
Non dire gatto! se non l'hai nel sacco!!!
------------------
Io ho usato un metodo un po' artigianale ma che funziona: scorro tutto il file byte per byte incrementando una variabile contatore fino alla fine del file. Quando esco dal ciclo decremento la variabile di 1 (tolgo il carattere di EOF che di solito non viene calcolato per la dimensione del file) e ottengo la dimensione. Ti posto il codice:
Sicuramente ci saranno delle funzioni di libreria o delle API apposite, ma non conoscendole, me le implemento artigianalmente! :gren:codice:int countFirst = 0; while (!feof(primo)) { fgetc(primo); countFirst++; } countFirst--; // ora in countFirst ho la dimensione del file rewind(primo); // riporto il puntatore all'inizio del file
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Questo metodo lo conoscevo già, ma visto che devo lavorare con file grandi (70 Mb circa), è troppo lento...
qquale metodo sizeof?
------------------
Non dire gatto! se non l'hai nel sacco!!!
------------------
No, quello di LeleFT... è lungo...
sizeof opera durante la compilazione e quindi nn funzionerè mai!!
Al posto di leggere un byte alla volta leggine 100 o di piu'...
Poi Sommi il ritorno di fread che e' il numero di byte letti...
while (!feof(fp)) {
letti = fread(&buffer, sizeof(char), 100, fp);
somma += letti;
}
Vale lo stesso di prima...
Esisterà una funzione/API che fa quello che voglio io!
Non vorrei dire una cavolata... ma se non ricordo male esiste una certa struttura chiamata stat che dà informazioni riguardo un file aperto... (tipo, nome e forse anche dimensione).
Credo che sia necessario includere la libreria stat.h per poter usare la relativa funzione (stat).
Sicuramente esiste questa libreria per Linux, non so se esiste anche per Windows...
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Non la trovo
Io in VB userei FileLenght() o LOF(), ma in C++ non saprei...