Bonjour a tous
voila j'ai un probleme qui persiste :
je veux ecrire une fonction qui prend 3 paramaitre
la question est comment chager la valeur du tableau (char **ranges)
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 { /// }
qui doit etre a la fin
en pascal c'est faisable mais en C j'ai des deficultes ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part ranges={"xxx-bbb","ccc-ddd",...}
autrement dir :
et maintenant le Code de la fonction :
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",...}
voila tout
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 } }
j'espere que vous m'aidiez ou me donner une astuce
Merci
Partager