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 :

recuperation d'une chaine de caractere dans un tableau


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Par défaut recuperation d'une chaine de caractere dans un tableau
    Bonjour a tous,
    je suis en train de faire un petit programme pour supprimer les fichiers en double et je galere un peu

    Je travaille sous l'OS linux et j'ai réussi via la commande ls -alR a recuperer les noms de fichiers, date de modif, arborescence et a tout mettre dans un tableau de 8 colonnes et du nombre de lignes qu'il faut de la maniere suivante
    ( sachant que j'ai mis chaque dossier pere qui est avant tous les fichiers contenus dans la colonne 1 de mon tableau en laissant les 7 autres colonnes vides)

    /*
    ./.adobe/Acrobat/7.0/Preferences
    drwxr-xr-x 3 tbouvet eleves 4096 2006-12-12 15:00 .
    drwxr-xr-x 6 tbouvet eleves 4096 2006-12-12 15:00 ..
    drwxr-xr-x 3 tbouvet eleves 4096 2006-12-12 15:00 Collab
    -rw------- 1 tbouvet eleves 3051 2007-06-15 10:48 reader_prefs
    ./.adobe/Acrobat/7.0/Preferences/Collab
    drwxr-xr-x 3 tbouvet eleves 4096 2006-12-12 15:00 .
    drwxr-xr-x 3 tbouvet eleves 4096 2006-12-12 15:00 ..
    -rw------- 1 tbouvet eleves 1367 2007-06-15 10:48 RSS
    drwxr-xr-x 3 tbouvet eleves 4096 2006-12-12 15:00 Collab
    */

    Dans le cas present, le fichier Collab est en double donc je souhaiterais recuperer les noms de dossier pere des deux fichiers en double afin de pouvoir faire une commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rm nom_dossier_pere/Collab
    Pour cela, j'ai mis une structure conditionnelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ptableau[i].colonne8 == NULL
    qui devrait etre valide uniquement si la colonne 8 est nulle donc uniquement si il y a un nom de dossier dans la colonne 1, mais ca ne marche pas; le programme ne considere pas les cases comme etant nulles.

    Est ce que quelqu'un sait pourquoi ces colonnes ne sont pas considérés comme nulles ou comment je pourrais faire autrement pour recuperer le nom de dossier..?

    ci joint la declaration de mon tableau, et la facon dont j'ai récupéré les chaines de caractere provenant d'un fichier texte
    Par avance merci
    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
    37
    38
    39
    40
    41
    42
    43
    44
    typedef struct ligne {                     
    	char colonne1[NB];
    	char colonne2[NB];
    	char colonne3[NB];
    	char colonne4[NB];
    	char colonne5[NB];
    	char colonne6[NB];
    	char colonne7[NB];
    	char colonne8[NB];
    	} ligne;
     
     
    char * avoile;
    	avoile = (char*)malloc(NB*sizeof(char));
    	i=-1;
    	while ( ! feof (moulinette) )
    	{
    		fgets(chaine,NB,moulinette);    // on met ligne par ligne le resultat de ls -alR dans "chaine"
    		tab=strtok(chaine," \n");       //on recupere chaque chaine de charactere de "chaine"
    		i++;
    		j=0;
    		while (tab != NULL)             // tant que le tab n'est pas vide, on continue a prendre des valeurs
    		{
    			strcpy(tmp[j].t,tab);   //on met chaque valeur de tab dans une variable tampon tmp[j] de 0 a 7
    			j++;
    			tab = strtok (NULL," \n");  //on reinitialise tab
    		}
    		if (strlen(tmp[0].t)>strcspn(tmp[0].t,":")) //sctrcspn compte le nombre characteres moins le ":", strlen compte le nombre de characteres => si c un dossier, il se finit par ":", donc on rentre dans cette boucle
    		{
    			avoile = strtok(tmp[0].t,":"); //on met le nom de dossier sans ":" dans une variable tampon
    			strcpy(ptableau[i].colonne1,avoile);  //on met cette variable tampon dans la ligne concernée colonne 1
    		}
    		else
    		{
    			strcpy(ptableau[i].colonne1,tmp[0].t); 	//droits d'execution, lecture
    			strcpy(ptableau[i].colonne2,tmp[1].t);
    			strcpy(ptableau[i].colonne3,tmp[2].t); 	//dossier utilisateur
    			strcpy(ptableau[i].colonne4,tmp[3].t); 	//dossier parent
    			strcpy(ptableau[i].colonne5,tmp[4].t); 	//poids
    			strcpy(ptableau[i].colonne6,tmp[5].t); 	//date de derniere modif
    			strcpy(ptableau[i].colonne7,tmp[6].t); 	//heure de derniere modif
    			strcpy(ptableau[i].colonne8,tmp[7].t); 	//nom du fichier, dossier
    		}
            }

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Par défaut
    a priori je pense pas que ca soit un probleme tres compliqué, je pense que c mon strtok qui cause mon probleme, mais j'arrive pas a trouver d'infos suffisantes sur les tutos et les faq...

  3. #3
    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
    Pourrais-tu poster un morceau de code compilable?

    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++

    +

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Par défaut
    Voila mon programme, avec en piece jointe le fichier listebis.txt qui est le resultat de la commande ls -alR
    Ya le fichier Collab comme j'ai montré dans mon premier post qui est en double (même date et même nom)
    Le code est pas tres bien organisé, si ya un truc que tu comprends pas demande moi

    edit: la partie commentée est la liste des choses qu'il me restait a faire, ca devrait marcher sans probleme une fois que j'arrive a recuperer le nom de dossier

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #define NB 100
    #define NB2 200
     
    typedef struct ligne {                      	//on définit le tableau
    	char colonne1[NB];
    	char colonne2[NB];
    	char colonne3[NB];
    	char colonne4[NB];
    	char colonne5[NB];
    	char colonne6[NB];
    	char colonne7[NB];
    	char colonne8[NB];
    	} ligne;
     
    typedef struct tm {
    	char t[NB];
    	} tm;
     
    int main ()					//définition des valeurs
    {
    	int i=0;
    	int j;
    	int nbc;
    	char nom_rep1[NB];                     //nom du premier repertoire pere
    	char nom_rep2[NB];			            //nom du deuxieme repertoire pere
    	char nom_fich[NB];                     //nom du fichier à supprimer
       	int n;                                  //nombre de lignes de liste.txt qu'on va trouver grace a wc -l
        	FILE * suppression = NULL;
    	n=195; // nombre de lignes 
    	tm tmp[7];
    	char * chaine;
    	chaine = (char*)malloc(NB*sizeof(char));
    	char * tab;
    	tab=(char *)malloc(NB*sizeof(char));
    	ligne * ptableau;
    	ptableau = (ligne*) malloc (n*sizeof(ligne));
    	FILE * moulinette = NULL;
    	moulinette  = fopen("listebis.txt","r");
    	char * avoile;
    	avoile = (char*)malloc(NB*sizeof(char));
    	i=-1;
    	while ( ! feof (moulinette) )
    	{
    		fgets(chaine,NB,moulinette);    // on met ligne par ligne le resultat de ls -alR dans "chaine"
    		tab=strtok(chaine," \n");       //on recupere chaque chaine de charactere de "chaine"
    		if(tab==NULL)                   //si il n'y a aucune chaine de charactere a recuperer, on ne prend rien
    		continue;
    		if(strcmp(tab,"total")==0)      //si le premier charactere est total on ne prend pas non plus
    		continue;
    		i++;
    		j=0;
    		while (tab != NULL)             // tant que le tab n'est pas vide, on continue a prendre des valeurs
    		{
    			strcpy(tmp[j].t,tab);   //on met chaque valeur de tab dans une variable tampon tmp[j] de 0 a 7
    			j++;
    			tab = strtok (NULL," \n");  //on reinitialise tab
    		}
    		if (strlen(tmp[0].t)>strcspn(tmp[0].t,":")) //sctrcspn compte le nombre characteres moins le ":", strlen compte le nombre de characteres => si c un dossier, il se finit par ":", donc on rentre dans cette boucle
    		{
    			avoile = strtok(tmp[0].t,":"); //on met le nom de dossier sans ":" dans une variable tampon
    			strcpy(ptableau[i].colonne1,avoile);  //on met cette variable tampon dans la ligne concernée colonne 1
    		}
    		else
    		{
    			strcpy(ptableau[i].colonne1,tmp[0].t); 	//droits d'execution, lecture
    			strcpy(ptableau[i].colonne2,tmp[1].t);
    			strcpy(ptableau[i].colonne3,tmp[2].t); 	//dossier utilisateur
    			strcpy(ptableau[i].colonne4,tmp[3].t); 	//dossier parent
    			strcpy(ptableau[i].colonne5,tmp[4].t); 	//poids
    			strcpy(ptableau[i].colonne6,tmp[5].t); 	//date de derniere modif
    			strcpy(ptableau[i].colonne7,tmp[6].t); 	//heure de derniere modif
    			strcpy(ptableau[i].colonne8,tmp[7].t); 	//nom du fichier, dossier
    		}
            }
    	nbc=i;  // nombre de lignes du tableau après avoir oté les blancs et les lignes poids total du dossier
    	printf("%d",nbc);					//test nombre de lignes tableau
        for (i=0;i<nbc;i++)
            {
            printf("%s %s %s %s %s %s %s %s\n",
            &ptableau[i].colonne1,
            &ptableau[i].colonne2,
            &ptableau[i].colonne3,
            &ptableau[i].colonne4,
            &ptableau[i].colonne5,
            &ptableau[i].colonne6,
            &ptableau[i].colonne7,
            &ptableau[i].colonne8);
            if (ptableau[i].colonne8 == NULL)
                {
                strcpy(ptableau[i].colonne1,nom_rep1);
                printf("%s \n",nom_rep1);
                }
            else
                {
                for (j=i+1;j<n;j++)
                    {
    				if (ptableau[j].colonne8 == NULL)
    				{
    					strcpy(ptableau[j].colonne1,nom_rep2);
    					printf("%s",nom_rep2);
    				}
    				else if ((ptableau[i].colonne8 == ptableau[j].colonne8) && (ptableau[i].colonne6 == ptableau[j].colonne6))
                        {
                        strcpy(ptableau[i].colonne8,nom_fich);
                        printf("%s",nom_fich);
     
    					/*
    					on a les deux noms de repertoire rep1 rep2
    					recherche rep1
    					scanf de la colonne date du rep1
    					recherche rep2
    					scanf de la colonne date du rep2
    					petit prog de olivier pour changer les heures lettre en heures chiffres
    					petit prog de olivier pour tester le dossier le plus recent
    					NE PAS OUBLIER LE NOM DU DOSSIER LE PLUS RECENT (creation de nouvelle valeur rep_sup)
    					modifier les quelques lignes en dessous pour suppression du rep1 ou du rep2
    					*/
     
                        suppression = fopen("supression.txt", "rw");
                        fprintf(suppression, "#!/bin/csh \n");
                        fprintf(suppression, "rm -i %s/%s; \n",nom_rep1,nom_fich);
                        }
                    }
                }
            }
    	fclose (moulinette);
    	return 0;
    }
    Fichiers attachés Fichiers attachés

  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 Tim_noob Voir le message
    Voila mon programme,
    Tu peux déjà commencer par corriger ça.
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:23: warning: function declaration isn't a prototype
    main.c: In function `main':
    main.c:90: warning: char format, different type arg (arg 2)
    main.c:90: warning: char format, different type arg (arg 3)
    main.c:90: warning: char format, different type arg (arg 4)
    main.c:90: warning: char format, different type arg (arg 5)
    main.c:90: warning: char format, different type arg (arg 6)
    main.c:90: warning: char format, different type arg (arg 7)
    main.c:90: warning: char format, different type arg (arg 8)
    main.c:90: warning: char format, different type arg (arg 9)
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 1 seconds)
    0 errors, 9 warnings
    • Il est inutile de mettre un tag aux structures si on ne l'utilise pas. struct tm est réservé par le langage C.
    • Si une fonction n'a pas de paramètres, on le précise avec (void).
    • Les commentaires // ne sont pas portables.
    • Le cast est inutile avec malloc()
    • sizeof (char) vaut 1 par définition
    • Le retour de malloc() doit être testé avant usage.
    • La mémoire allouée doit être libérée après usage.
    • La forme canonique est
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
       
         T *p = malloc (sizeof *p * n);
         if (p != NULL)
         {
            /* usage normal */
       
            /* fin */
            free (p), p = NULL;
         }
      C'est le B.A BA de la gestion dynamique de la mémoire.
    • Idem avec fopen()...
    • " char *avoile" : Les jeux de mots Caram'bar, c'est rigolo 2 minutes, mais ça ne renseigne pas sur la sémantique de l'objet... Bref, ça rend le code ésotérique...
    • Il est inutile (fuite mémoire) d'initialiser 2 fois tmp... Le malloc() est à supprimer.
    • Je rappelle la sémantique de strcpy() : strcpy (destination, source). Je soupçonne une inversion.
    • Pourquoi toutes ces allocations de tableaux de taille fixe ? C'est inutile...

    Ton code corrigé et réorganisé. L'indentation excessive indique qu'il est temps de faire des fonctions. Ca tombe bien la réorganisation selon le principe de la réduction de la portée au minimum, a préparé le code pour ça...
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
     
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    #define NB 100
    #define NB2 200
     
    typedef struct
    /* on définit le tableau */
    {
       char colonne1[NB];
       char colonne2[NB];
       char colonne3[NB];
       char colonne4[NB];
       char colonne5[NB];
       char colonne6[NB];
       char colonne7[NB];
       char colonne8[NB];
    }
    ligne;
     
    typedef struct
    {
       char t[NB];
    }
    tm;
     
    /* définition des valeurs */
    int main (void)
    {
       char *chaine = malloc (NB * sizeof *chaine);
     
       if (chaine != NULL)
       {
    /* nombre de lignes de liste.txt qu'on va trouver grace a wc -l */
          int n = 195;
          ligne *ptableau = malloc (n * sizeof *ptableau);
     
          if (ptableau != NULL)
          {
             FILE *moulinette = fopen ("listebis.txt", "r");
             if (moulinette != NULL)
             {
                char *avoile = malloc (NB * sizeof *avoile);
     
                if (avoile != NULL)
                {
                   int i = -1;
     
    /* on met ligne par ligne le resultat de ls -alR dans "chaine" */
                   while (fgets (chaine, NB, moulinette) != NULL)
                   {
                      tm tmp[7];
     
    /* on recupere chaque chaine de charactere de "chaine" */
                      char *tab = strtok (chaine, " \n");
    /* si il n'y a aucune chaine de charactere a recuperer, on ne prend rien */
                      if (tab == NULL)
                         continue;
    /* si le premier charactere est total on ne prend pas non plus */
                      if (strcmp (tab, "total") == 0)
                         continue;
                      i++;
                      {
                         int j = 0;
    /* tant que le tab n'est pas vide, on continue a prendre des valeurs */
                         while (tab != NULL)
                         {
    /* on met chaque valeur de tab dans une variable tampon tmp[j] de 0 a 7 */
                            strcpy (tmp[j].t, tab);
                            j++;
    /* on reinitialise tab */
                            tab = strtok (NULL, " \n");
                         }
                      }
    /* sctrcspn compte le nombre characteres moins le ":", strlen compte le nombre de characteres => si c un dossier, il se finit par ":", donc on rentre dans cette boucle */
                      if (strlen (tmp[0].t) > strcspn (tmp[0].t, ":"))
                      {
    /* on met le nom de dossier sans ":" dans une variable tampon */
                         avoile = strtok (tmp[0].t, ":");
    /* on met cette variable tampon dans la ligne concernée colonne 1 */
                         strcpy (ptableau[i].colonne1, avoile);
                      }
                      else
                      {
    /* droits d'execution, lecture */
                         strcpy (ptableau[i].colonne1, tmp[0].t);
                         strcpy (ptableau[i].colonne2, tmp[1].t);
    /* dossier utilisateur */
                         strcpy (ptableau[i].colonne3, tmp[2].t);
    /* dossier parent */
                         strcpy (ptableau[i].colonne4, tmp[3].t);
    /* poids */
                         strcpy (ptableau[i].colonne5, tmp[4].t);
    /* date de derniere modif */
                         strcpy (ptableau[i].colonne6, tmp[5].t);
    /* heure de derniere modif */
                         strcpy (ptableau[i].colonne7, tmp[6].t);
    /* nom du fichier, dossier */
                         strcpy (ptableau[i].colonne8, tmp[7].t);
                      }
                   }
    /* nombre de lignes du tableau après avoir oté les blancs et les lignes poids total du dossier */
                   {
                      /* nom du premier repertoire pere */
                      char nom_rep1[NB];
    /* nom du deuxieme repertoire pere */
                      char nom_rep2[NB];
    /* nom du fichier à supprimer */
                      char nom_fich[NB];
     
                      int nbc = i;
    /* test nombre de lignes tableau */
                      printf ("%d", nbc);
                      for (i = 0; i < nbc; i++)
                      {
                         printf ("%s %s %s %s %s %s %s %s\n",
                                 ptableau[i].colonne1,
                                 ptableau[i].colonne2,
                                 ptableau[i].colonne3,
                                 ptableau[i].colonne4,
                                 ptableau[i].colonne5,
                                 ptableau[i].colonne6,
                                 ptableau[i].colonne7, ptableau[i].colonne8);
                         if (ptableau[i].colonne8 == NULL)
                         {
                            strcpy (nom_rep1, ptableau[i].colonne1);
                            printf ("%s \n", nom_rep1);
                         }
                         else
                         {
                            int j;
                            for (j = i + 1; j < n; j++)
                            {
                               if (ptableau[j].colonne8 == NULL)
                               {
                                  strcpy (nom_rep2, ptableau[j].colonne1);
                                  printf ("%s", nom_rep2);
                               }
                               else
                                  if ((ptableau[i].colonne8 ==
                                       ptableau[j].colonne8)
                                      && (ptableau[i].colonne6 ==
                                          ptableau[j].colonne6))
                               {
                                  strcpy (nom_fich, ptableau[i].colonne8);
                                  printf ("%s", nom_fich);
     
    /*
     
                      on a les deux noms de repertoire rep1 rep2
                      recherche rep1
                      scanf de la colonne date du rep1
                      recherche rep2
                      scanf de la colonne date du rep2
                      petit prog de olivier pour changer les heures lettre en heures chiffres
                      petit prog de olivier pour tester le dossier le plus recent
                      NE PAS OUBLIER LE NOM DU DOSSIER LE PLUS RECENT (creation de nouvelle valeur rep_sup)
                      modifier les quelques lignes en dessous pour suppression du rep1 ou du rep2
                    */
                                  {
                                     FILE *suppression =
                                        fopen ("supression.txt", "rw");
                                     if (suppression != NULL)
                                     {
                                        fprintf (suppression, "#!/bin/csh \n");
                                        fprintf (suppression,
                                                 "rm -i %s/%s; \n", nom_rep1,
                                                 nom_fich);
                                        fclose (suppression), suppression = NULL;
                                     }
                                  }
                               }
                            }
                         }
                      }
                   }
                   free (avoile), avoile = NULL;
                }
                fclose (moulinette), moulinette = NULL;
             }
             free (ptableau), ptableau = NULL;
          }
          free (chaine), chaine = NULL;
       }
       return 0;
    }
    Pose des questions si tu ne comprends pas.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 20
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Tu peux déjà commencer par corriger ça.
    Oue effectivement, j'avais rajouté les & parceque mon printf marchait pas donc j'avais testé quelques trucs

Discussions similaires

  1. erreur pour une insertion d'une chaine de caractere dans une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 09h09
  2. Réponses: 10
    Dernier message: 16/06/2006, 13h53
  3. Réponses: 10
    Dernier message: 22/05/2006, 11h45
  4. Réponses: 2
    Dernier message: 04/11/2005, 11h35
  5. [Debutant] Mettre une chaine de caractere dans un tableau
    Par bouboussjunior dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 14/09/2004, 11h33

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