ajouter des colonnes à un fichier txt
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

ajouter des colonnes à un fichier txt



  1. #1
    amine12355

    ajouter des colonnes à un fichier txt


    ------

    bonsoir ,

    alors je suis entrain de faire un programme en langage C qui me permet de faire quelques vérifications sur un fichier .txt trié que j'ai ,
    en faite j'ai besoin de créer deux ou 3 nouvelles colonnes dans ce fichier ( ce que je viens de faire est de recopier le fichier original dans un autre fichier identique et c'est dans le nouveau fichier que je voudrai ajouter ces colonnes )
    et de plus je voudrai savoir aussi comment pourrai-je sélectionner une colonne de ce fichier et enregistrer ses données dans une variable dans mon programme!

    si quelqu'un pourrait bien m'aider ça serait vraiment gentil !
    merci d'avance

    -----

  2. #2
    bisou10

    Re : ajouter des colonnes à un fichier txt

    Rien compris, désolé
    Avant l'enregistrement tu dois insérer tes colonnes.

  3. #3
    masterclassic

    Re : ajouter des colonnes à un fichier txt

    Bonjour !

    Tu peux lire le contenu du fichier ligne par ligne selon le format original et ensuite écrire les valeurs dans un nouveau fichier sous le nouveau format qui comprendra les nouvelles valeurs insérées là où il faut. Cela jusqu'à la fin du fichier original.

    Bonne soirée

  4. #4
    masterclassic

    Re : ajouter des colonnes à un fichier txt

    Bon, la méthode à suivre dépend aussi du problème spécifique.
    Ce n'est pas la même chose si tu as un fichier de 100 lignes ou 10.000.000, si tu peux lire l'ensemble des données en mémoire ou non.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : ajouter des colonnes à un fichier txt

    Il faut également deviner qu'il s'agit probablement d'un fichier csv, car aucune précision n'est donnée sur la représentation d'une colonne dans le fichier texte.

  7. #6
    balhrog

    Re : ajouter des colonnes à un fichier txt

    Bonjour Amine,
    il manque des informations dans la description de ton problème.
    Comment qualifierais-tu ton niveau en programmation/langage C ?
    Que contient ton premier fichier .txt?
    Pourquoi deux ou trois colonnes?
    Il faudrait l'extension de ton second fichier dans lequel tu recopies tes informations. Jack parle de 'CSV', renseigne toi là-dessus si tu ne connais pas. C'est une méthode simple de formatage de fichier. Si tu arrives à lire et écrire dans un fichier, tu devrais comprendre rapidement.
    Si tu utilises un fichier au format 'CSV', pour la selection de colonne/ligne, il faudra que tu fasses algorithme qui parcours ton fichier (en prenant en compte les ';' pour les colonnes et les '\n' pour les lignes).
    Avec cet algo, il faut que tu parviennes à deux fonctions du style :
    Code:
    void saveData(int column, int line, char* data, FILE *fileDescriptor);
    et
    Code:
    char* loadData(int column, int line, FILE *fileDescriptor);
    qui prennent en paramètres la ligne et le colonne où tu souhaites mettre/récupérer ta donnée.
    Une fois que tu auras fais ces deux fonctions, tu pourras faire ce qui te chante dans la suite de ton programme.
    Si tu as des soucies dans la réalisation d'une étape, sois le plus précis possible pour que l'on puisse t'aider

    Cordialement Victor

  8. #7
    amine12355

    Re : ajouter des colonnes à un fichier txt

    bonjour à tous ,
    tout d'abord merci bien pour vos réponses ,
    et bon Balhrog , je suis peut -être un peu plus qu'un débutant mais je sais lire et écrire dans un fichier et je sais le format CSV.
    sinon pour mon fichier il contient des dates et des numéro ( des pointages )
    et donc ce que je dois faire en gros c'est des vérifications sur ces pointages mais j y vais doucement , jusqu'au là je sais bien lire tout le fichier ( avec fgets ) et le recopier dans un autre fichier , mais ce que je dois maintenant faire , c'est de stocker mes données dans des variables et plus précisément je dois stocker les données de deux colonne ! sinon pourquoi je voudrais ajouter 2 colonnes ! bon c'est parce que je veux afficher les conclusions des vérifications dans le même fichier en ajoutant des colonnes et écrire pour chaque ligne le constat que j'ai .
    si vous voulez que je mettes le code que j'ai fais pour bien comprendre ce que je viens de dire n'hésitez pas à me dire !

    merci bcp de nouveau !

  9. #8
    Jack
    Modérateur

    Re : ajouter des colonnes à un fichier txt

    On ne sait toujours pas s'il s'agit d'un fichier csv.

    Comme il est fort probable que ça en soit un, pourquoi, ne pas lire la ligne dans le fichier source et la stocker dans une chaine, supprimer le retour ligne en fin de chaine, copier la chaine dans le fichier de destination puis ajouter les 2 derniers champs en les formatant dans un printf?
    Idem avec les autres lignes.

  10. #9
    amine12355

    Re : ajouter des colonnes à un fichier txt

    Ah oui pardon j'ai oublié de le préciser ! oui il s'agit bien d'un fichier CSV
    bon voilà le code que j'ai fais , si vous pouvez me donner des astuces pour l'améliorer ça serait parfait.

    Code:
    #include <stdio.h>
    #include <string.h>
    #define TAILLE_MAX 1000
    #define NB_ASSISTANTES_MAX 30
    struct ()
    int main(int argc, char *argv[])
    {
        char datePointage[TAILLE_MAX]="", datePointagePrecedant[TAILLE_MAX]="" ;
        FILE* fichierEntree = NULL;
        FILE* fichierSortie = NULL;
        char pointageEnCours[TAILLE_MAX] = "";
    
        if (argc > 1)
        {
            fichierEntree = fopen(argv[1], "r");
        }
        fichierSortie = fopen("succès.csv", "w");
    
        if (fichierEntree != NULL && fichierSortie!=NULL)
        {
            while (fgets( pointageEnCours, TAILLE_MAX, fichierEntree) != NULL)
            {
                fprintf( fichierSortie ,"%s", pointageEnCours);
                
                
                strcpy(datePointagePrecedant, pointageEnCours);
            }
                    
            fclose(fichierEntree);
            fclose(fichierSortie);
        }
    }

  11. #10
    Jack
    Modérateur

    Re : ajouter des colonnes à un fichier txt

    A quoi sert le strcpy puisque tu ne te sers pas de datepointagePrecedant ?

  12. #11
    amine12355

    Re : ajouter des colonnes à un fichier txt

    j'ai pas encore terminé le programme en fait ça va me permettre de faire des vérification des pointages actuel et précédant j'en aurais besoin de savoir s'ils sont égaux etc .....

  13. #12
    Chanur

    Re : ajouter des colonnes à un fichier txt

    Bonjour,

    Quelques remarques sur ton code :
    - la ligne "struct ()", au début n'a aucun sens. C'est juste une erreur de syntaxe. "struct" est un mot réservé du langage C et sa syntaxe n'est pas celle-là.
    - "succès.csv" : à mon avis, c'est une assez mauvaise idée de mettre un accent dans un nom de fichier. Le codage des caractères accentués est tellement variable que ça risque de donner n'importe quoi. Néanmoins, c'est autorisé : si tu a une très bonne raison tu peux le faire.
    - C'est une bonne idée de vérifier que fichierEntree et fichierSortie sont non nuls, mais tu devrais mettre des messages d'erreur. Là, ton programme ne fait rien si un des pointeurs est nul. Et il y a des tonnes de cas où ça peut se produire : par exemple, tu n'as pas donné d'argument en lançant le programme ; ou tu t'es trompé dans le nom du fichier en entrée ; ou le fichier en entrée est interdit en lecture ; ou le fichier de sortie existe déjà et est interdit en écriture ; ou le répertoire courant est interdit en écriture ; ou le disque est plein, etc. ... En d'autres termes, si tu lances le programme et qu'il ne se passe rien, actuellement tu n'as plus qu'à deviner pourquoi. C'est casse-pied quand ça se produit.
    - comme Jack te l'a déjà dit, il faut supprimer le retour chariot à la fin de la ligne que tu viens de lire si tu veux ajouter quelque chose après.
    - précédent s'écrit avec un e (datePointagePrecedant)
    - mon compilateur râle quand je ne mets pas return 0; à la fin du main. C'est bête un compilateur.
    Dernière modification par Chanur ; 15/09/2017 à 21h42.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  14. #13
    polo974

    Re : ajouter des colonnes à un fichier txt

    Attention au piège de la dernière ligne du fichier, c'est pas sûr qu'il y ait un line feed au bout...

    Attention au piège du Caractère Séparateur dans un texte, ex:
    "4,5,6","7,8,9",,,,,
    ici, du vrai csv, mais les 2 premières colonnes contiennent du texte avec une virgule dedans qui correspond au Caractère Séparateur Virgule..

    Attention au piège du texte qui contient un double quote, ex:
    """4,5,6","7,8,9""",,,,,
    le double quote es doublé dans le texte (un peu comme le single quote dans une chaîne sql)...

    Et puis sur un tableur français, le point décimal est une virgule...

    Etc...

    Bref, lire du csv n'est pas trivial...

    Et puis, il y a des lib sur le net (genre libcsv)...
    Jusqu'ici tout va bien...

Discussions similaires

  1. Matlab: Importer certaines colonnes d'un fichier texte
    Par invite6d0ad495 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 11/02/2012, 09h11
  2. ajouter ligne avec moins de colonnes [JTAble]
    Par invite85257474 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 03/01/2012, 16h17
  3. Ajouter des annotations sur un fichier pdf
    Par invite234d9cdb dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 17/07/2009, 10h17
  4. Word et fichier à 2 colonnes
    Par invitebfba5092 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 15/04/2008, 13h46
  5. Lire un fichier en C mais juste quelques colonnes
    Par Gwyddon dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 26/01/2008, 11h57