IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Gestion de fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Par défaut Gestion de fichier
    Bonjour aux forumeurs C,


    je requiert votre aide concernant le projet sur lequel je travaille.

    J'ai besoin de générer des fichiers " de sortie " en fonction des données d'un fichier lu en entrée.

    Ce fichier pouvant être suffisamment long (128 000 lignes minimum), chaque ligne va contenir les données qui vont déterminer le fichier de sortie spécifique. S'il existe, on écrit à la suite de ce fichier ; sinon, on crée ce fichier.

    Je me suis dirigé vers un tableau de structure suivant : un champ char[255] pour le nom du fichier de sortie, et un champ FILE* pour le pointeur de ce fichier.

    J'ai fixé la taille de ce tableau à 100, donc, dans le cas où l'on doit créer un nouveau fichier et que le tableau est rempli, je choisi une ligne du tableau au hasard, je ferme le fichier correspondant et " j'insère " ce nouveau fichier.

    J'aimerai savoir si vous avez déjà eut à faire à ce genre de problème et quelles sont vos idées pour y résoudre, voir si ma solution est bonne et quelles seraient les points à améliorer.

    Voici le code de ma structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef struct {
     
    	char name[255];
    	FILE* file;
     
    } file_t;
     
    file_t * f;
    Merci d'avance pour vos réponses

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Bonjour,

    avant de pouvoir répondre, combien de fichiers de sortie sont produit en moyenne pour ces 120000 lignes ? Un même fichier est utilisé combien de fois en moyenne ?

    Je pense que tu pourrais utiliser un arbre (pour des accès plus rapide) et augmenter la limite de 100. Mais il faut voir en fonction des réponses que tu nous donneras.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2011
    Messages : 71
    Par défaut
    Bonjour,

    Peut être que tu peux déjà commencer par une solution de base et voir après si ça ne le fait pas niveau performances ?

    Quelchose dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
    	const char fin_name[] = "toto.txt";
    	char fout_name[255];
    	char line[500];
     
    	int num;
    	FILE *fin,*fout;
     
     
    	if(fin = (fopen(fin_name,"r")))
    	{
    		while(fgets(line,sizeof(line),fin) != NULL)
    		{
    			if( sscanf(line,"fichier %d",&num) == 1)
    			{
    				sprintf(fout_name,"fichier_%d",num);
    				printf("%s\n",fout_name);
     
    				if(fout = (fopen(fout_name,"a")))
    				{
    					fputs(line,fout);
    					fclose(fout);
    				}
    			}
    		}
    		fclose(fin);
    	}
     
    	return EXIT_SUCCESS;;
    }

Discussions similaires

  1. Gestion de fichier
    Par Zenol dans le forum C++
    Réponses: 6
    Dernier message: 22/09/2005, 15h44
  2. gestion de fichier à partir d'un formulaire
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 16h52
  3. Fonctions de gestion de fichiers
    Par sebduth dans le forum Fortran
    Réponses: 4
    Dernier message: 22/08/2005, 10h38
  4. [JDOM] Gestion "gros fichiers"
    Par Haazheel dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 17/10/2003, 13h42
  5. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo