Passage en paramètres de flux de fichier
Bonjour à tous,
J'ai une routine assez longue à coder de lecture/écriture de fichier et comme certaine partis pourraient être traitées avec des fonction à part, j'aimerais passer en paramètre à ces fonction la position du flux que je lis/écris.
Déjà j'aimerais savoir si c'est possible et ensuite comment on déclare de tels flux dans le passage de paramètre ?
Ce serait quelque chose comme :
void construc_ligne(oftream(?) nomflux, char * [11] nomfich) ?
Comme je ne sais pas si je m'explique bien, voici mon bout de code comme exemple plus concret :
Code:
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
| void Dune::build_table(Vecteurdunes vd, int srid, char date[11] , int temps_relatif)
{
int nbd, j, nbp;
double nx, ny, nz ;
Point p;
char nsql[taille];
ofstream fich(nsql, ios::app);
if(!fich)
cout<<"... !\n";
else
{
for(int i=0; i<nbd; i++)
{
if (!entree)
{
cout << " \n ...!! \n" ;
}
else // fichier dune ouvert
{
while (entree.eof()==false)
{
//fonction lecture fichier
entree >> nom; //lecture de la première ligne
entree >> id;
entree >> nbp;
//construction des X de la ligne de crête
for (j=0; j<nbp; j++) |
A ce stade là je voudrais créer ma fonction de construction de ligne et lui passer en paramètre le flux que j'ai appelé "entree"
Code:
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
| crete.construc_ligne(oftream(?) entree, char[11] nomfich);
{
entree >> nx;
p.set_x(nx);
crete.ajout_point(p);
}
for (j=0; j<nbp; j++) //construction des Y de la ligne de crête
{
entree >> ny;
p = crete.get_point(j);
p.set_y(ny);
crete.set_point(p, j);
}
for (j=0; j<nbp; j++) //construction des Z de la ligne de crête
{
entree >> nz;
p = crete.get_point(j);
p.set_z(nz);
crete.set_point(p, j);
}
}
crete.L.erase(crete.L.begin(), crete.L.end());
}//fin fichier dune ouvert
}//fin pour le i em fichier ouvert du vecteur dune
}/*FIN SET_info*/
} |
Merci d'avance pour vos réponses :)
EDIT : Merci énormément à celui qui a modifié l'apparence du code, c'est beaucoup plus clair comme ça !! J'ai bien tenté de faire comme dans les autres post, mais je n'ai pas réussi à trouver comment faire.