// RT_C123A3A3 : Programme de lecture d'un fichier xls avec parametres
Programme = "RT_C123A3A3"
Version = "V1.2 du 20120213"
Copyright = "Jacques-Deric Rouault - Rastell Toull"

// A1 Affichage des commentaires
mprintf ("Programme = " + Programme + "\n")
mprintf ("Version   = " + Version + "\n")
mprintf ("Copyright = " + Copyright + "\n" + "\n")

// A2 Verification du repertoire
[fsce,erreur] = mopen (Programme + ".sce","r");
if erreur<>0 then 
  mprintf ("ERREUR A2 : ERREUR DE REPERTOIRE " + Programme + ".sce\n\n");
  abort; 
end;  
mclose (fsce);

// A3 Ouverture du fichier texte
[ftxt,erreur] = mopen(Programme +'.txt','r')
if erreur<>0 then
  mprintf ("ERREUR A3 : FICHIER AUXILLIAIRE NON DETECTE\n\n")
  abort
end

// A4 Lecture et controle de l'identificateur RASTELL-TOULL
str = mgetl (ftxt,1);
if str <> "\\RASTELL-TOULL" then 
  mclose (ftxt);  
  mprintf ("ERREUR A4 : IDENTIFICATEUR RASTELL-TOULL NON CONFORME\n\n");
  mclose(ftxt)
  abort;
end;

// A5 Lecture et controle de l'identificateur FORMAT
str = mgetl (ftxt,1);
if str <> "\\FORMAT" then 
  mprintf ("ERREUR A5 : IDENTIFICATEUR FORMAT NON CONFORME\n\n");
  mclose (ftxt);  
  abort;
end;

// A6 Lecture et controle du format
str = mgetl (ftxt,1);
format_fichier = sscanf (str,"%i");
if format_fichier <> 1 then 
  mprintf ("ERREUR A6 : FORMAT NON CONFORME\n\n");
  mclose (ftxt);  
  abort;
end;

// A7 Lecture et controle de l'identificateur FICHIERS
str = mgetl (ftxt,1);
if str <> "\\FICHIERS" then 
  mprintf ("ERREUR A7 : IDENTIFICATEUR FICHIERS NON CONFORME\n\n");
  mclose (ftxt);  
  abort;
end;

// A8 Lecture du commentaire Fichier xls à lire et du nom du fichier
str = mgetl (ftxt,1);
nom_fichier_xls = mgetl (ftxt,1);

// A9 Lecture et controle de l'identificateur PARAMETRES
str = mgetl (ftxt,1);
if str <> "\\PARAMETRES" then 
  mprintf ("ERREUR A9 : IDENTIFICATEUR PARAMETRES NON CONFORME\n\n");
  mclose (ftxt);  
  abort;
end;

// B10 Lecture du commentaire et de la valeur Page du fichier xls
str = mgetl (ftxt,1);
str = mgetl (ftxt,1);
page_xls = sscanf (str,"%i");

// B11 Lecture du commentaire et de la valeur Colonne
str = mgetl (ftxt,1);
str = mgetl (ftxt,1);
colonne = sscanf (str,"%i");

// B12 Lecture du commentaire et de la valeur Ligne_debut
str = mgetl (ftxt,1);
str = mgetl (ftxt,1);
ligne_debut = sscanf (str,"%i");

// B13 Lecture du commentaire et de la valeur Ligne_fin
str = mgetl (ftxt,1);
str = mgetl (ftxt,1);
ligne_fin = sscanf (str,"%i");

// B14 Lecture et controle de l'identificateur FINEND
str = mgetl (ftxt,1);
if str <> "\\FINEND" then 
  mprintf ("ERREUR B13 : IDENTIFICATEUR FINEND NON CONFORME\n\n");
  mclose (ftxt);  
  abort;
end;

// B15 Fermeture du fichier texte
mclose(ftxt)

// B16 Ouverture du fichier xls
[fxls,liste_ident,noms_pages,position_pages] = xls_open(nom_fichier_xls)
// ajouter controle

// B17 Lecture de la feuille 1
[Valeurs_num,Valeurs_text] = xls_read(fxls,position_pages(page_xls))
mclose(fxls)

// B18 Lecture des valeurs
n=ligne_fin-ligne_debut+1;
for i=1:n
  t(i)=Valeurs_num (ligne_debut+i-1,colonne);
end

// B19 Affichage de controle
for i=1:n
  mprintf ("rang = %i - valeur = %i\n",i,t(i));
end

// B20 Fin d'exécution du programme
mprintf ("Fin d''execution du programme " + Programme + " conforme \n");
