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 :

Charger Un Fichier Txt En Memoire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 32
    Par défaut Charger Un Fichier Txt En Memoire
    Bjr a tts,


    voila , j'aimerais savoir comment pouvoir charger un fichier en mémoire, et

    ceci pour pouvoir le modifier tout au long de l'exécution de mon programme,

    et l'enregistrer aprés la fin du programme.

    le fichier est comme suit::


    DERNIER,COURS COURS.VEILLE CAPITALISATION
    V1
    V2 .
    .
    .
    .
    .
    .


    En faite on peut le considérer comme un tableau ,chaque valeur(v1.....vn) contient un dernier cours, un cours veille et un capitalisation,


    et j'aimerais tout enregister en mémoire et pouvoir accéder au champs demander pour le pouvoir modifier, comme par exemple accéder au dernier cours de V10.


    j'espere que j'etais clair,


    merci

  2. #2
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut


    il y a tout ce qui faut dans la faq

    fopen,allocation de mémoire,pointeurs etc

  3. #3
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Regarde du côté de la fonction read ; tu dois passer en argument une chaîne de caractères assez grande pour pouvoir contenir tout ton fichier : dès lors, tu seras à même de pouvoir modifier autant que tu voudras le fichier chargé en mémoire. Pour écrire le résultat, utilise write, et pour connaître la taille du fichier (donc la taille du buffer à utiliser, c'est-à-dire la chaîne de caractères), fais appel à fstat.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 32
    Par défaut
    Merci,

    je vais regarder ça,,,,,,

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    read <...> write<...> fstat.
    Pourquoi des fonctions systèmes alors que le C fourni des fonctions standards ?

    fread()
    fwrite()
    fseek()
    ftell()

    Mais de toutes façons, c'est inadapté, car il s'agit d'un fichier texte. Il faut plutôt travailler avec fgets() et un tableau souple de pointeurs sur char (accès direct) ou une liste chainée double (accès séquentiel, insertion) selon les contraintes de navigation dans les données.

  6. #6
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    fread()
    fwrite()
    fseek()
    ftell()
    Exact, on peut aussi procéder ainsi.

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    Il suffit de l'ouvrir en lecture/écriture avec la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *fopen(char *nom_fichier, char *mode);
    Tu commence par ouvrir ton fichier en lecture seule. Tu peux le lire ligne par ligne à l'aide de la fonction fgets et placer son contenu dans un tampon sur lequel tu pourras travailler et apporter toutes les modifications désirées. Lorsque tu auras fini tes modifications, tu ouvres le fichier en écriture et y sauve le contenu de ton tampon. Le choix de la structure de donnée servant à stocker lon texte peut être relativement important suivant la quantité de texte que tu désires charger en mémoire.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par mujigka
    Il suffit de l'ouvrir en lecture/écriture avec la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *fopen(char *nom_fichier, char *mode);
    Hum, pas très règlementaire tout ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *fopen(char const *nom_fichier, char const *mode);

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    autant pour moi, tu as raison, la prochaine fois, je ferais attention

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    En ce qui concerne les structures de données à utiliser dans ce genre de situation, cela dépend de la quantité de texte à charger en mémoire, de la fréquence des modifications que tu désires y apporter, etc. Etant moi-même débutant en C et en programmation, je préfère te donner une référence sur le sujet:

    http://www.cs.unm.edu/~crowley/papers/sds/sds.html

    Bonne chance

    Mujigkalement

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  11. #11
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Pour moi ce serais sans hésiter, une lecture avec fgets et une liste chaînée donc chaque noeuds corresponderais à une ligne dans le fichier. Le fait d'utiliser une liste chaînée est plus pratique pour l'ajout de lignes n'importe où dans le fichier.

    Chaque noeud stockant un pointeur sur char alloué dynamiquement, il n'y aurais pas de gros problèmes pour agrandir ou réduire une ligne !

    Bon après il faut pas se voiler la face, c'est une méthode un peu plus longue à mettre en oeuvre mais surement pas plus qu'un tableau dynamique qui à mes yeux ne serais pas aussi souple qu'une liste
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Archivaid, merci.

Discussions similaires

  1. Charger des donnés depuis un fichier .txt
    Par Rifano dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/07/2009, 11h59
  2. Charger fichier txt ou htm
    Par Maglight dans le forum Débuter
    Réponses: 6
    Dernier message: 14/11/2008, 18h16
  3. Comment charger un fichier txt du web dans un memo Delphi - Pascal
    Par michaelminelli1 dans le forum Débuter
    Réponses: 2
    Dernier message: 14/11/2008, 17h30
  4. charger les données d'un fichier .txt dans une table
    Par lemerite dans le forum Développement
    Réponses: 6
    Dernier message: 10/09/2008, 18h33
  5. Réponses: 0
    Dernier message: 17/07/2008, 16h12

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