Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 05 Jan 2004 17:53:41

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Connaitre la taille d'un fichier

voila je voudrais connaitre la taille d'un fichier dont je connais le chemin.

Avec une fonction de ce type on peut trouver la taille:

Code:

// renvoie la taille en octet du fichier
// renvoie -1 si le fichier ne pas etre ouvert
// le fichier est ouvert en mode binaire
long fsize( char *dirname )
{
    long size;
    FILE *fp=fopen (dirname, "r"); // ouverture du fichier en mode binaire

    if(fp!=NULL)
    {
    fseek(fp, 0, SEEK_END); /* aller en fin */
        size = ftell(fp); /* lire la taille */
        fclose(fp);  // on ferme le fichier
    }
    else size=-1;

    return size; 
}
 

Mais je voudrais savoir s'il n'y aurait un moyen plus simple. genre un astuce en C qui te donne directement la taille


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#2 05 Jan 2004 17:56:52

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Connaitre la taille d'un fichier

sinon mon exploreur fonctionne très bien sur mon PC ( c plus rapide pour tester ). Il est limité à deux réperoirtoire l'un dans l'autre. le tout dans un lecteur.
ex: L:imagesvacances
Si y a un troisième dossier je ne l'ouvrirai pas. fo penser à l'affichage des dossiers sur la calculatrice ensuite. ca ne sert a rien de une arborescence trop complex.

Moi je dis que www.developpez.com c'est génial ! surtout leur FAQ. très utile pour les débutants.


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#3 06 Jan 2004 02:23:45

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: Connaitre la taille d'un fichier

lol ya aussi tou simplement une fonction

Code:

long filelength(int handle)

c'est beaucoup plus simple et elle renvoie aussi -1 si le fichier n'existe pas smile

Hors ligne

 

#4 06 Jan 2004 02:28:19

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Connaitre la taille d'un fichier

Oui mais le handle vient d'ou? Ce n'est pas le meme type de "manip" qu'avec fopen et fread (donc avec des ptr sur struct FILE): il faudrait ouvrir le fichier avec open pour avoir un handle comme ca alors?


Pensez à surveiller mes releases wink

Hors ligne

 

#5 06 Jan 2004 02:38:36

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: Connaitre la taille d'un fichier

ah oui autant pour moi (la vache yen a du monde sur le forum a 8h30 :mrgreen: )

ben sinon je vois pas trop, a part qu'on peut avoir la taille avec findfirst:

Code:

struct ffblk found;
if(!findfirst(dirname,&found,0))
{
    return found.ff_fsize;
}
else
{
    return -1;
}

ah mais si c pas mal finalement  wink

Hors ligne

 

#6 06 Jan 2004 13:11:16

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Connaitre la taille d'un fichier

findfirst fait une recherche, ce qui prend de la place et du temps pour rien, alors que opendir et readdir lit simplement fichier par fichier, sans esquiver aucun élement... donc faut voir!


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#7 06 Jan 2004 14:18:40

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: Connaitre la taille d'un fichier

si qqun trouve une meilleure methode generique qu'il le dise !

pour utiliser readdir neanmoins il faut que le fichier se trouve dans le repertoire courant et readdir scanne tous les fichiers/dossiers. la meilleure maniere de faire ca pour un explo a mon avis c'est de recuperer la liste des fichiers avec la taille dans un tableau

Hors ligne

 

#8 06 Jan 2004 16:00:56

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Connaitre la taille d'un fichier

la vitesse je pense pas que ca soit tres important pour un explo, de plus findfirst et findnext sont tres rapides, y'a pas de soucis de ce coté la wink


Pensez à surveiller mes releases wink

Hors ligne

 

#9 07 Jan 2004 04:57:17

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Connaitre la taille d'un fichier

je me souviens pas comme je fais ...
Je pense que j'ouvre chaque fichier et que je fais long filelength(int handle)

Hors ligne

 

#10 07 Jan 2004 04:58:56

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Connaitre la taille d'un fichier

et open est plus rapide que fopen car il utilise les routines dos internes au lieu de routines complexe bufferisées....

Hors ligne

 

#11 07 Jan 2004 08:28:28

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Connaitre la taille d'un fichier

la meilleure maniere de faire ca pour un explo a mon avis c'est de recuperer la liste des fichiers avec la taille dans un tableau

c'est comme que je procede. Quand on ouvre un lecteur, je scanne celui completement : les fichiers, les dossiers, et fichiers des dossiers. et je range dans un tableau.

L'explo fonctionne bien sur PC, mais bon maintenant fo ke je m'attaque à l'affichage sur la caltos. c'est pa plus plus amusant.


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#12 07 Jan 2004 13:27:33

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Connaitre la taille d'un fichier

T'as vraiment l'air de prendre ton pied en faisant te prog... lol


Pensez à surveiller mes releases wink

Hors ligne

 

#13 08 Jan 2004 15:34:19

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Connaitre la taille d'un fichier

franchement je kif programmer mon explo. mais bon pa bcp de temps en ce moment. en plus pour j'ai fé le plus dur. donc moins de motivation. et puis la copine qui prend de plus en plus ( ki a di de POID ke je le tue ! lol ) de temps !


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#14 11 Jan 2004 03:55:21

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Connaitre la taille d'un fichier

on m'avait dit sur le forum C de developpez.com que les fonctions open & co. étaient moins rapides que fopen (ils les ont appellées les fonx de bas nivo lol)

D'ailleurs g pu confirmer avec Encoder 1: de 30Ko/s ac read&write à 700Ko/s ac fgetc&fputc !!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#15 11 Jan 2004 06:35:40

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Connaitre la taille d'un fichier

sous wincrotte oui mais sur un mode réel avec les interuptions c bien plus rapide

Hors ligne

 

#16 11 Jan 2004 07:04:46

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: Connaitre la taille d'un fichier

l'avantage c'est que sous windows, ces fonctions fgetc beneficie de l'avantage du buffering, car une partie du fichier est chargée en memoire, alors que sur calto non
open est donc forcement + rapide sur graph100 car a la base ces deux fonctions utilisent les memes interruptions

Hors ligne

 

#17 11 Jan 2004 09:18:19

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Connaitre la taille d'un fichier

dans ce cas, je vois pas pourquoi dans l' aide de TC3 il font référence à des buffer pour les fonction fXXX !


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#18 11 Jan 2004 09:30:44

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: Connaitre la taille d'un fichier

c'est des petit buffer smile donc dans le cas d'un fichier que tu charge qu'une fois, ou alors si tu lis a plein d'endroit differents c pas tres avantageux

Hors ligne

 

#19 11 Jan 2004 10:52:48

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Connaitre la taille d'un fichier

Vous vous cassez le c*l pour rien mdr
y'a pas de probleme de vitesse en utilisant fopen, sonic charge 15 ko de données répartis en 5 fichiers externes en les copiant en plus en memzone à chaque fois que vous lancez la map01 par exemple, et personne ne m'a signalé que le temps de chargement était trop long... lol
sérieux je crois pas que ca viennent a quelques 100emes de secondes pres  wink


Pensez à surveiller mes releases wink

Hors ligne

 

#20 11 Jan 2004 11:36:40

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Connaitre la taille d'un fichier

oui mais si tu charge lis et interprete directement le fichier, c bien plus long..
par ex pr les CSV, ou je lis un fichier d'un coup, j'ai vu du lag (enfin du ralentissement) a cause du buffer ki prenais plus de temps, et c'est pour ça que j'utilise les fonctions dos !

Hors ligne

 

#21 11 Jan 2004 11:47:00

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Connaitre la taille d'un fichier

En général on manipule jamais un fichier directement, on l'ouvre, on charge son contenu et on le referme, et apres on travaille avec ce qu'on a chargé...  :?


Pensez à surveiller mes releases wink

Hors ligne

 

#22 11 Jan 2004 12:20:18

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Connaitre la taille d'un fichier

dans le cas du PC c plus intéressant d'utiliser des méthodes avec buffer, car généralement les fichiers sur lesquels on travaille sont dans un disque dur et qui chacun le sait à un temps d'accès assez lent. Donc vaut mieux prendre 128K voir 256Ko d'un coup pour avoir de meilleures performances.

dans le cas de notre chère G100, c différent car le délai entre la Flash/Ram c kifkif.

Mnt à vous de faire des tests pour voir kel méthodes est plus rapide.


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#23 12 Jan 2004 10:30:52

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Connaitre la taille d'un fichier

voui pk pa, mais pour un traitement très simple genre xor c'est moins prise de tête ^^


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#24 12 Jan 2004 12:07:37

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: Connaitre la taille d'un fichier

bon on va pas s'eterniser la dessus... STOP ca y'est on l'a la methode smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr