Transformer une colonne en une ligne

Résolu
DLM26 Messages postés 6 Statut Membre -  
DLM26 Messages postés 6 Statut Membre -
Bonjour,

je cherche une procedure pour transformer un fichier txt d'une colonne composee de n lignes (chaque ligne ayant x caracteres),
en une ligne de n ensembles de x carateres, chacun etant separe par une virgule

exemple:

AAQM002
AAQP007
AAQP009
ACQH002
ACQH003
ACQH004

en*:
AAQM002,AAQP007,AAQP009,ACQH002,ACQH003,ACQH004

complication supplémentaire: la valeur de n est "grande" (au moins 50 000), et la solution doit etre compatible avec cet ordre de grandeur
*je dois soumettre cette ligne a un requeteur non modulable d'un logiciel

merci pour votre aide

DLM26
Configuration: Windows XP
Firefox 2.0.0.11

3 réponses

  1. Utilisateur anonyme
     
    si tu utilise un tableau, tu prend la bibliotheque string.h, tu utilise strlen pour voir la longueur de ta chaine et tu remplace le dernier caractere , soit '\0' par ',' avec strncpy ^^.

    Le plus simple, tu la convertis en AnsiString, mais bon....
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tu peux installer devC++ pour compiler le code (voir en gras)

    mon test est fait sous linux sur un fichier de 5 198 918 lignes (50 000 c'est rien ;-))
    à la fin tu verras le temps d'exécution

    lami20j@debserv:~/trash$ wc -l ccm.txt
    5198918 ccm.txt
    lami20j@debserv:~/trash$ cat ccm.c
    #include <stdio.h>
    
    int main ()
    {
      FILE *fic, *res;
      int c;
    
      if ((fic = fopen ("ccm.txt", "r")) == NULL)
        return -1;
      if ((res = fopen ("resultat.txt", "w")) == NULL)
        return -1;
    
      while ((c = getc (fic)) != EOF){
          if (c == '\n')
            c = ',';
          fprintf (res, "%c", c);
      }
      fclose (fic);
      fclose (res);
      return 0;
    }
    lami20j@debserv:~/trash$ gcc ccm.c
    lami20j@debserv:~/trash$ time ./a.out
    
    real    0m3.321s
    user    0m2.828s
    sys     0m0.476s
    
    0
  3. DLM26 Messages postés 6 Statut Membre
     
    merci,

    j'ai pu y arriver
    DLM26
    0