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 :

traitement texte d'un fichier


Sujet :

C

  1. #1
    sos
    sos est déconnecté
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 17
    Points : 29
    Points
    29
    Par défaut traitement texte d'un fichier
    Bonjour tout le monde,
    Je voudrais traiter les textes de fichiers. Je veux supprimer les virgules, préceder les points par un espace ou bien faire des remplacements.
    Comment puis je faire cette opération automatiquement et obtenir des fichiers contenant ces textes traités
    Merci pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Business Developer chez SoftFluent
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Business Developer chez SoftFluent
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 51
    Points
    51
    Par défaut
    Une methode tres "à la main" pour ce genre de besoin precis n'est pas très compliqué.

    Commence par ouvrir ton fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int open(const char *pathname, int flags);
    Pour bufferiser le contenu du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssize_t read(int fd, void *buf, size_t count);
    Et effectuer un parsing de ton buffer (chaine de caractere)
    (ne pas oublier d'allouer une chaine de caractere suffisament grande afin de stocker ce dont tu as besoin)

    Pour enfin write ton buffer dans ton fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssize_t write(int fd, const void *buf, size_t count);
    Cependant si quelqu'un a une méthode + "simple" pour effectuer un besoin si précis, qu'il n'hésite pas à poster sa solution ou donner son avis.

    Bonne journée

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    il faudra que tu utilises les fonctions :

    • fopen
    • fgets
    • strchr
    • fprintf
    • fclose


    Mais d'abord il faut penser à ce que tu veux faire.

    Réfléchis. Ecris l'algorithme. Essaye de le coder. Si tu butes sur quelque chose, montre nous ce que tu as fait et on t'aidera..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par sos
    Je voudrais traiter les textes de fichiers. Je veux supprimer les virgules, préceder les points par un espace ou bien faire des remplacements.
    Comment puis je faire cette opération automatiquement et obtenir des fichiers contenant ces textes traités
    C'est assez complexe. Il faut bien définir les opérations à réaliser et penser aux cas tordus...

    Ensuite, il faut trouver un moyen (ligne de commande, fichier de commande, menu...) pour faire comprendre au programme quels traitements il doit effectuer.

    C'est surtout un gros travail de spécification.

    Ensuite, la conception et le codage devraient être assez simples. Les tests, un peu mois...
    Pas de Wi-Fi à la maison : CPL

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par adiekmann
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int open(const char *pathname, int flags);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssize_t read(int fd, void *buf, size_t count);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssize_t write(int fd, const void *buf, size_t count);
    Je déconseille l'usage de fonctions non standards, surtout quand des fonctions standards existent (fopen(), fread(), fwrite()). Mais pour un fichier texte, fgets(), fputs(), fprintf() est plus adapté, vu l'organisation en lignes de texte.
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Je déconseille l'usage de fonctions non standards, surtout quand des fonctions standards existent (fopen(), fread(), fwrite()). Mais pour un fichier texte, fgets(), fputs(), fprintf() est plus adapté, vu l'organisation en lignes de texte.
    +1
    Par contre, des qu'on utilise fgets ça implique de définir une longueur max de ligne (et de definir ce qu'il se passe si la ligne est trop grande). Si tu peux pas fixer de longueur max de ligne, il faudrait lire bloc de texte par bloc de texte avec fread (et l'algo devient bien plus compliqué)

  7. #7
    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 : 46
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Sinon au pire, une lecture caractère par caractère avec fgetc mais je ne pense pas que ce soit la meilleur solution du point de vue des performance, faudrait tester éventuellement
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Reproduire un même traitement sur les autres fichiers texte d'un dossier
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2015, 19h09
  2. Programme de remplacement de texte dans des fichiers
    Par Invité4 dans le forum Linux
    Réponses: 13
    Dernier message: 12/11/2006, 16h06
  3. [langage] Remplacer du texte dans un fichier
    Par Michaël dans le forum Langage
    Réponses: 9
    Dernier message: 11/03/2005, 15h19
  4. Ajout de texte dans un fichier
    Par willowII dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 24/08/2004, 19h30
  5. [langage] Ecrire un bloc de texte dans un fichier
    Par sarahbes dans le forum Langage
    Réponses: 6
    Dernier message: 10/06/2004, 11h40

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