Herezh_dev/Lecture/LectBloc_T.cc

1 line
2.2 KiB
C++
Raw Normal View History

#include "LectBloc_T.h" // lecture d'un bloc void LectBloc::Lecture(UtilLecture & entreePrinc,LesReferences& lesRef, char * motcle,string message) { MotCle motCle; // ref aux mots cle if (strstr(entreePrinc.tablcar,motcle)!=NULL) { entreePrinc.NouvelleDonnee(); list <T> lili; T elem; // double t1; string s1; while ( !motCle.SimotCle(entreePrinc.tablcar)) { elem.Lecture(entreePrinc); // *(entreePrinc.entree) >> elem.Nomref() >> t1; // on regarde si cela correspond bien a une reference existante if (!lesRef.Existe(elem.nomRef())) { cout << "\n erreur, la ref "<< elem.nomRef() << " de " << motcle << "ne correspond a aucun element" << " de la liste de reference lue !! \n"; elem.Affiche(); cout << " LectBloc::Lecture( etc ..." << endl; entreePrinc.MessageBuffer(message); exit (1); } // on verifie que l'on n'utilise pas deux fois la meme reference // pour deux cibles differentes list <T>::iterator ii; for (ii=lili.begin() ; ii != lili.end(); ii++) if (((*ii).nomRef() == elem.nomRef()) && ((*ii)::Valeur != elem::valeur)) { cout << "\n erreur , un meme nom de reference est utilisee pour" << " deux cibles differentes \n" << " nom de la ref = " << elem.nomRef() << ", valeurs des deux cibles =" << (*ii)::Valeur <<", "<< elem::valeur ; cout << " LectBloc::Lecture( etc etc .." << endl; entreePrinc.MessageBuffer(message); exit (1); } // stockage lili.push_back(elem); entreePrinc.NouvelleDonnee(); } // enregistrement des infos tabElem.Change_taille(lili.size()); list <T>::iterator i; int j; for (i=lili.begin(),j=1 ; i != lili.end(); i++,j++) tabEpaiss(j) = *i; } };