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
|
pointContour* retourPoint(const char *nomFichGeo)
{
const char point[]="$points";
int taille = strlen(point);
char*chaine[taille];
int j=0;
int i=0;
int nombre_point;
int numr;
double absc;
double ordo;
int cnt=0;
int c1,c2;
FILE* fichGeo = fopen(nomFichGeo,"r+");
while(fgets(chaine,sizeof(point),fichGeo)!= NULL)
{
// on lit tout le fichier ligne par ligne tant que celui-ci n'est pas vide
if (strcmp(chaine,point)==0)
{ // on s'arrète à la balise $points
fseek(fichGeo,2,SEEK_CUR); // on va à la ligne suivante
fscanf(fichGeo,"%d",&nombre_point); // on récupère le nombre de points
fseek(fichGeo,20,SEEK_CUR); // On se place à ligne contenant le premier point
pointContour pt[nombre_point*sizeof(pointContour)];
do
{ // boucle copiant les points du fichier .GEO vers le fichier .CAL pour avoir le contour
fscanf(fichGeo," %d %lf %lf %d %d \n",&numr,&absc,&ordo,&c1,&c2);
//printf("nombre : %d \n abscisse : %lf \n ordonnée : %lf \n",numr,absc,ordo);
fseek(fichGeo,4,SEEK_CUR); // sauter une ligne
nombre_point=nombre_point--;
j++;
pt[j].num=numr;
pt[j].x=absc;
pt[j].y=ordo;
pt[j].c1=c1;
pt[j].c2=c2;
} while(nombre_point!=0);
return pt;
}
} // remarque pt[0] est vide, commencer par pt[1]
} |
Partager