GESTION FICHIERS TXT (INSERTION, CONCATÉNATION, DÉNOMBREMENT, FILTRES ETC...)

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 30 avril 2006 à 00:28
KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007 - 5 mai 2006 à 16:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37335-gestion-fichiers-txt-insertion-concatenation-denombrement-filtres-etc

KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007
5 mai 2006 à 16:55
Eh ben c'était pas prévu tout simplement mais maintenant ca ne pose plus de problèmes (en réponse à Luthor)
Note : je vais bientot mettre une nouvelle mise a jour dans laquelle je vais reprendre ton conseil, Luthor :
à savoir que je vais supprimmer ces ouvertures/fermetures permananentes pour les remplacer par une fonction "ouvrir"
et une fonction "fermer".
Sur les gros fichiers ca représente un gain de temps hallucinant (on divise le temps de traitement par plus de 10 )
mais au début j'avais fait des tests sur de petits fichiers et je ne m'était pas rendu compte.
Par ailleurs nombre de fonctions vont etre optimisées.
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 mai 2006 à 15:38
"(bah le principal c'est quand meme que ca marche non ?)". Bas justement, si t'as plus de 100.000 mots ?
KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007
1 mai 2006 à 22:30
Voilà c'est fait : les tableaux (qui n'avaient pas rencontré un franc succès) ont été remplacé par des vector
J'espère que ca fera taire les raleurs ... :p
KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007
1 mai 2006 à 14:03
Bon bon j'ai compris : je vais modifier ca rapidement (bah le principal c'est quand meme que ca marche non ?)
C'est vrai qu'au point de vue mémoire, c'est pas optimisé.
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 avril 2006 à 18:56
Ah oui problème de vue désolé lol
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 avril 2006 à 18:27
Moi j'en vois 210 000 int, mais bon... Les voies de Joky sont surement impénétrables.
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 avril 2006 à 17:27
C'est sur que ça fait peur de déclarer 300 000 int comme ça lol :)
KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007
30 avril 2006 à 16:30
Pour les tableaux je te rassure ca marche tres bien : il suffit simplement de savoir que le premier
mot est le mot n°1 et tout va bien. Les vector seraient certainement mieux mais comme je ne les utilise
jamais... enfin je vais voir

En ce qui concerne l'ouverture et les fermetures intempestives ca vient tout simplement du fait que
j'ai voulu faire un truc tres simple d'utilisation et pas forcément très performant. Ceci dit si je vois
que d'autres le demande, je peux aisément modifier le systeme.

Et pour ofstream et FILE je ne connai pas la différence (mais ca doit etre équivalent je pense)
J'ai choisi la méthode FILE parce que j'avais un probleme avec ofstream (je me souvien plus lequel)
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 avril 2006 à 00:28
Oups je saute en voyant ca:
int indexMots [100000][2]; //Table d'indexation de tous les mots : en [1] les debuts de mots et en [2] les fins de mots
int indexLignes [10000];

Aller deux beaux vector et tu enlèves ca :)

Sinon ca, ca m'étonnerait que ca marche bien:
int getPosFinMot(int a){ return indexMots[a-1][2];};
=> Un tableau en C, ca ommence a 0.

Puis a mon avis, ya mieux que d'ouvrir et fermer sans arret le fichier. Pk tu fais pas une fonction Open puis Close ?
Rajoute une gestion d'erreur avec possibilité de récupérer un message d'erreur.

Sinon une question générale, c'est quoi la différence, si différence il y a, entre:
ofstream file;
et
FILE file;

Puisque le C++ fournit <fstream>,y a t il un intéret particulier a utiliser la deuxième solution ?
Rejoignez-nous