Bonjour a tous
voila j'ai un probleme qui persiste :
je veux ecrire une fonction qui prend 3 paramaitre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void PartFile(double size , int parts, char **ranges  )
  // size = taille de fichier 
  // parts = nombre de partie
  // ranges = tableau qui va contenir les partie 
{
 /// 
}
la question est comment chager la valeur du tableau (char **ranges)
qui doit etre a la fin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ranges={"xxx-bbb","ccc-ddd",...}
en pascal c'est faisable mais en C j'ai des deficultes ..
autrement dir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
   // je declare le tableau
char ** p ; // pointe sur rien 
  // j'appel la  fonction 
PartFile(6542454 , 8, p )
 // a la fin je dois avoir un tableau plein ..
// p={"xxx-bbb","ccc-ddd",...}
et maintenant le Code de la fonction :
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
 
///////////////////////////////////////
//  je devise le sze sur parts 
// et je remplis les ranges . 
// ranges sont de sorte : {"fsdf-fsdfs","fs-fsd",...}
//
/////////////////////////////////////
void PartFile(double sze , int parts, char **ranges  )
{    
// char srange[parts][100]        ;
    long int qot , rem          ;
 
    ldiv_t t = ldiv(sze , parts) ;
    qot = t.quot ;
    rem = t.rem  ;
 
    int i = 0 ;
    for ( i=0 ; i<parts ; i++)
    {
          int         r = 0 ;
          static int d = 0 ;
          char cnb[50] , rg[100] ;
 
          r = d - qot  ;     // t=0
          if (i==0) {r += qot ;} else {r += (qot+1) ;}
 
          ltoa(r,cnb,10);
          strcpy(rg,cnb);
 
          strcat(rg,"-");
 
          r += qot ;   // t= bachsz
          ltoa(r,cnb,10);
          strcat(rg,cnb) ;
          d = r ;
          sprintf(ranges[i],"%s",rg); /// Problem
          printf("%s\n", ranges[i]) ;/// Probleme
    }
}
voila tout
j'espere que vous m'aidiez ou me donner une astuce
Merci