Merge branch 'master' of dwarves.iut-fbleau.fr:foucher/SAE12_2021

This commit is contained in:
2021-12-17 16:38:40 +01:00

View File

@@ -6,10 +6,17 @@
int ouvrir_fichier(char* path){
FILE* fluxouverture;
char instru[3];
char arg1[3], arg2[3];
char instru[4];
char arg1[4], arg2[4];
int c=0;
int i;
int ligne=0;
char buffer[4];
char previnstru[4]; // contient l'instruction ayant été "mal interprétée" à cause d'une instruction mauvaise
int errinstru; // flag qui aide le prog à savoir si l'instruction précédente était mauvaise
buffer[0]='\0';
fluxouverture=fopen(path, "r");
@@ -20,12 +27,13 @@ int ouvrir_fichier(char* path){
if (fluxouverture){
while (!feof(fluxouverture)){
/*for (i=0; i<3; i++){
instru[i]="";
arg1[i]="";
arg2[i]={""};
}
*/
instru[0]='\0';
arg1[0]='\0';
arg2[0]='\0';
printf("\n");
/*fread(&instru,sizeof(char),1,fluxouverture);
fread(&arg1,sizeof(char),3,fluxouverture);
@@ -33,38 +41,67 @@ int ouvrir_fichier(char* path){
printf("%s %s %s\n", instru, arg1, arg2);*/
fscanf(fluxouverture, "%s %s %s", instru, arg1, arg2);
printf("%zu %ld", strlen(arg1), strlen(arg2));
for (i=0; i<3; i++){
for (i=0; i<strlen(instru); i++){
printf("%c", instru[i]);
}
printf(" ");
if (!feof(fluxouverture) || !strlen(arg1)==0){
for (i=0; i<3; i++){
/*if (!feof(fluxouverture) || !strcmp(arg1, buffer)==0){
for (i=0; i<strlen(arg1); i++){
printf("%c", arg1[i]);
}
printf(" ");
} else {
printf("\n");
}*/
if (!feof(fluxouverture) || !strcmp(arg1, buffer)==0){
if (strcmp(arg1, "MOV")==0 || strcmp(arg1, "ADD")==0 || strcmp(arg1, "SUB")==0 || strcmp(arg1, "JMP")==0 || strcmp(arg1, "JMZ")==0 || strcmp(arg1, "JMG")==0 || strcmp(arg1, "DJZ")==0 || strcmp(arg1, "CMP")==0 || strcmp(arg1, "DAT")==0){
printf("\n");
fseek(fluxouverture, -1, SEEK_CUR);
for (i=0; i<strlen(arg1); i++){
previnstru[i]=arg1[i];
printf("%c", previnstru[i]);
}
} else if (strcmp(arg1, "MOV")!=0 || strcmp(arg1, "ADD")!=0 || strcmp(arg1, "SUB")!=0 || strcmp(arg1, "JMP")!=0 || strcmp(arg1, "JMZ")!=0 || strcmp(arg1, "JMG")!=0 || strcmp(arg1, "DJZ")!=0 || strcmp(arg1, "CMP")!=0 || strcmp(arg1, "DAT")!=0) {
for (i=0; i<strlen(arg1); i++){
printf("%c", arg1[i]);
}
printf(" ");
} else {
printf("\n");
}
}
if (!feof(fluxouverture) || !strlen(arg2)==0){
for (i=0; i<3; i++){
/*if (strcmp(arg2, "DAT")==0){
printf("bon");
}*/
if (!feof(fluxouverture) || !strcmp(arg2, buffer)==0){
if (strcmp(arg2, "MOV")==0 || strcmp(arg2, "ADD")==0 || strcmp(arg2, "SUB")==0 || strcmp(arg2, "JMP")==0 || strcmp(arg2, "JMZ")==0 || strcmp(arg2, "JMG")==0 || strcmp(arg2, "DJZ")==0 || strcmp(arg2, "CMP")==0 || strcmp(arg2, "DAT")==0){
fseek(fluxouverture, -3, SEEK_CUR);
} else if (strcmp(arg2, "MOV")!=0 || strcmp(arg2, "ADD")!=0 || strcmp(arg2, "SUB")!=0 || strcmp(arg2, "JMP")!=0 || strcmp(arg2, "JMZ")!=0 || strcmp(arg2, "JMG")!=0 || strcmp(arg2, "DJZ")!=0 || strcmp(arg2, "CMP")!=0 || strcmp(arg2, "DAT")!=0) {
for (i=0; i<strlen(arg2); i++){
printf("%c", arg2[i]);
}
} else {
printf("\n");
}
/*printf("%c %c %c\n", instru, arg1, arg2);*/
/*fgets(instru, 3, fluxouverture);
fgets(arg1, 3, fluxouverture);
fgets(arg2, 3, fluxouverture);
puts(instru);
puts(arg1);
puts(arg2);*/
// return de la fonction si pas d'erreur
// instru / arg1 / arg2
// return de la fonction si erreur
// previnstru / arg1 / arg2 ?
}
}
}
}
int main (int argc, char* argv[]){
ouvrir_fichier(argv[1]);
printf("\n");
}