bombyce | Quelqun peut il zieuter et me dire ou je fais une erreur d'algorithme ou si il me manque du code ou si il y en a en trop car je sature.j'y suis depuis 2 jours a chercher la solution et je trouve pas. mon probleme : je traite certaines lignes du fichier textes plusieurs fois et certaines ne sont pas traitees alors que je veux toutes les traiter et cela une seule fois. (par traiter j'entends faire des comparaisons pour etablir des concordances entr 2 lignes puis un calcul de difference de temps entre ces 2 lignes )
Code :
- parcour2 = 1;
- parcour1 = 0;
- do{
- if( parcour2==1){
- if (traitement==1){
- fseek(lignes,pos_cour,SEEK_SET);
- fgets(caracteres,sizeof(caracteres),lignes);
- pos_cour = ftell(lignes);
- traitement = 0;
- }else{
- fgets(caracteres,sizeof(caracteres),lignes); pos_cour = ftell(lignes); }
- test1=strstr(caracteres,"Ok" ); if(test1==NULL){
- transforme1(caracteres); buffer11=calculTemps(9,10,caracteres); HEURES_1=strtol(buffer11,0,10); buffer12=calculTemps(12,13,caracteres); MINUTES_1=strtol(buffer12,0,10);
- buffer13=calculTemps(15,16,caracteres); SECONDES_1=strtol(buffer13,0,10);
- JOURS_1=strtol(calculTemps(0,1,caracteres),0,10);
- MOIS_1=strtol(calculTemps(3,4,caracteres),0,10);
- ANNEES_1=strtol(calculTemps(6,7,caracteres),0,10);
- parcour1 = 1;
- traitement = 1;
- fgets(caracteres,sizeof(caracteres),lignes); test2=strstr(caracteres,"Ko" );
- }
- }
- if (parcour1 == 1){
- if (test2 == NULL) { transforme2(caracteres);
- buffer21=calculTemps(9,10,caracteres);
- HEURES_2=strtol(buffer21,0,10);
- buffer22=calculTemps(12,13,caracteres);
- MINUTES_2 =strtol(buffer22,0,10);
- SECONDES_2 =strtol(calculTemps(15,16,caracteres),0,10); JOURS_2 = strtol(calculTemps(0,1,caracteres),0,10);
- MOIS_2 = strtol(calculTemps(3,4,caracteres),0,10);
- ANNEES_2 = strtol(calculTemps(6,7,caracteres),0,10);
- if((strcmp(DATE1,DATE2)==0)&&(strcmp(NUMNOEUD1,NUMNOEUD2)==0)&& (strcmp(NUMLIGNE1,NUMLIGNE2)==0)){ dureeHeures = HEURES_2 - HEURES_1 ; dureeMinutes = MINUTES_2 - MINUTES_1 ;
- dureeSecondes = SECONDES_2 - SECONDES_1 ;
- dureeJours = JOURS_2 - JOURS_1; dureeMois = MOIS_2 - MOIS_1;
- dureeAnnees = ANNEES_2 - ANNEES_1;
- p +=sprintf(p,"%s , ",DATE1); p +=sprintf( p, "%d:%d:%d ; ", dureeJours, dureeMois, dureeAnnees);
- p +=sprintf( p, "%d:%d:%d ; ", dureeHeures, dureeMinutes, dureeSecondes);
- p +=sprintf(p,"%s , ",NUMNOEUD1);
- p +=sprintf(p,"%s , ",NUMLIGNE1);
- if (test5 != NULL){ p +=sprintf(p,"%s . \n",CAUSE2); }
- fputs(phrase,duree); parcour2 = 1; }else{
- if (strcmp(DATE1,DATE2)!=0){
- if((temporaire=fopen(temporaire_fic,"wt" ))==NULL){
- printf("\n Erreur d'ouverture du fichier %s",nomfich);
- }else{
- transformeCasParticulier(caracteres);
- fputs(phrase,temporaire);
- }
- }
- parcour2 = 0; }
- }else{
- fgets(caracteres,sizeof(caracteres),lignes);
- test2=strstr(caracteres,"Ko" );
- parcour2 = 0;
- }
- }
- }while(fgets(caracteres,sizeof(caracteres),lignes)!=NULL);
|
En clair : A L'AIDE je me noie dans mon code.
A+ Message édité par bombyce le 23-06-2004 à 15:03:11
|