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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| void ImpDiffUnComp( char *TypCompImp, char AttrImp, tSchema *SchemaPtr, tSchema *Schema2Ptr, int TypeDiff, ListeDetail *liste, Tableau_Recap *recap )
{
/* variables locales */
tBoolean SousType;
tBoolean PremEquiv; /* premier d'une liste de composants equivalents avec
numero consecutifs ( pour les 2 schemas ) */
int PremInd; /* indice du 1er composant a traiter dans TabSchema */
int DernInd; /* indice du dernier composant a traiter dans TabSchema */
int IndTab; /* indice courant dans le tableau */
/* corps fonction */
/* entete suivant le type de composant et l'attribut */
TeteEltDiff ( TypeDiff );
PremEquiv = FALSE;
char* test;
int i = initialiser_Detail(TypeDiff, liste, recap);
char *remplissage_donnees[i];
int cpt = 0;
remplissage_donnees[0] = "test";
/* Intervalle du tableau des composants suivant le type de composant */
/* un sous type existe pour les E/S */
switch (TypeDiff/10)
{
case 0 :
case 2 :
SousType = TRUE;
IntervTab ( ENTREE, SchemaPtr, &PremInd , &DernInd );
break;
case 7 :
SousType = FALSE;
IntervTab ( EDV, SchemaPtr, &PremInd , &DernInd );
break;
case 1 :
case 3 :
SousType = TRUE;
IntervTab ( SORTIE, SchemaPtr, &PremInd , &DernInd );
break;
case 5 :
case 6 :
SousType = TRUE;
IntervTab ( STATION, SchemaPtr, &PremInd , &DernInd );
break;
case 4 :
SousType = FALSE;
IntervTab ( OPERATEUR, SchemaPtr, &PremInd , &DernInd );
break;
}
for ( IndTab = PremInd; IndTab <= DernInd; IndTab ++ )
{
if ( (SchemaPtr->TabSchema[IndTab].Attribut == AttrImp ) &&
( (SousType == FALSE ) ||
(SchemaPtr->TabSchema[IndTab].TypeComposant[1] == TypCompImp[1])
) )
{
if (AttrImp == 'E') /* equivalents, on n'imprime que le 1er d'une
liste consecutives de composants */
{
if ( PremEquiv == FALSE )
{
test = ImpLigDiff( SchemaPtr, Schema2Ptr, IndTab, TypeDiff );
printf("test : %s\n",test);
PremEquiv = ListeEquiv ( SchemaPtr, IndTab, DernInd );
PremEquiv = FALSE;
/* Modif Th.P car non comprehensible sur listing
if ( PremEquiv == TRUE )
ImpLigTab ("...|...|..."); */
}
else
if ( ListeEquiv ( SchemaPtr, IndTab, DernInd ) == FALSE )
{
test = ImpLigDiff( SchemaPtr, Schema2Ptr, IndTab, TypeDiff );
printf("test : %s\n",test);
/* Modif Th.P car non comprehensible sur listing
PremEquiv = FALSE; */
}
}
else
{
test = ImpLigDiff( SchemaPtr, Schema2Ptr, IndTab, TypeDiff );
printf("test : %s\n",test);
}
remplissage_donnees[cpt] = test;
cpt++;
}
}
int j;
for (j = 0;j<i;j++){
printf("TAB : %s\n",remplissage_donnees[j]);
}
FermerTableau();
SautLigne(4);
return;
} |
Partager