Commit 2f829b6e authored by Dorchies David's avatar Dorchies David
Browse files

feat: v6 2015/05/07

parent 6a0d7450
Consignes 2012, Qres aux prises, pas de Qref
\ No newline at end of file
Paramètres décrivant le réseau local de stations hydrométriques du réservoir Aube (pour le calcul des débits naturels à la prise et à la restitution) Paramètres décrivant le réseau local de stations hydrométriques du réservoir Aube (pour le calcul des débits naturels à la prise et à la restitution), version 2013
AUBE AUBE
1 1 Na et Ni 1 1 Na et Ni
ARCIS_24 identifiant aval ARCIS_24 identifiant aval
......
Paramètres décrivant le réseau local de stations hydrométriques du réservoir Marne (pour le calcul des débits naturels à la prise et à la restitution) Paramètres décrivant le réseau local de stations hydrométriques du réservoir Marne (pour le calcul des débits naturels à la prise et à la restitution), version 2013
MARNE MARNE
2 1 Na et Ni 2 1 Na et Ni
CHALO_21 identifiant aval CHALO_21 identifiant aval
......
Paramètres décrivant le réseau local de stations hydrométriques du réservoir Seine (pour le calcul des débits naturels à la prise et à la restitution) Paramètres décrivant le réseau local de stations hydrométriques du réservoir Seine (pour le calcul des débits naturels à la prise et à la restitution), version 2013
SEINE SEINE
1 0 Na et Ni 1 0 Na et Ni
MERY-_22 identifiant aval MERY-_22 identifiant aval
......
Paramètres décrivant le réseau local de stations hydrométriques du réservoir Yonne (pour le calcul des débits naturels à la prise et à la restitution) Paramètres décrivant le réseau local de stations hydrométriques du réservoir Yonne (pour le calcul des débits naturels à la prise et à la restitution), version 2013
YONNE YONNE
0 0 Na et Ni 0 0 Na et Ni
CHAUM_07 identifiant aval CHAUM_07 identifiant aval
......
version de 2013
\ No newline at end of file
...@@ -12,4 +12,3 @@ Temps de retour souhaites pour l'analyse statistique : ...@@ -12,4 +12,3 @@ Temps de retour souhaites pour l'analyse statistique :
25.000000 25.000000
50.000000 50.000000
100.000000 100.000000
150.000000
Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation
R_AUB
1
AUBE
0
FORMAT DU FICHIER :
1ere ligne : en-tête obligatoire
2eme ligne : identifiant de station aval du système (chaîne de 8 caractères)
3eme ligne : nombre K de réservoirs
K noms de réservoir (1 par ligne)
K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure)
Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation
R_MAR
1
MARNE
0
FORMAT DU FICHIER :
1ere ligne : en-tête obligatoire
2eme ligne : identifiant de station aval du système (chaîne de 8 caractères)
3eme ligne : nombre K de réservoirs
K noms de réservoir (1 par ligne)
K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure)
Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation
R_SEI
1
SEINE
0
FORMAT DU FICHIER :
1ere ligne : en-tête obligatoire
2eme ligne : identifiant de station aval du système (chaîne de 8 caractères)
3eme ligne : nombre K de réservoirs
K noms de réservoir (1 par ligne)
K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure)
Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation
R_YON
1
YONNE
0
FORMAT DU FICHIER :
1ere ligne : en-tête obligatoire
2eme ligne : identifiant de station aval du système (chaîne de 8 caractères)
3eme ligne : nombre K de réservoirs
K noms de réservoir (1 par ligne)
K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure)
Règles de gestion actuelle avec les consignes locales (débits de référence aux prises et restitutions).
\ No newline at end of file
...@@ -47,7 +47,7 @@ procedure LectureObjectif; ...@@ -47,7 +47,7 @@ procedure LectureObjectif;
YNbQobj:=0; YNbQobj:=0;
repeat repeat
if YSaisie then if YSaisie then
AReponse(YNomFicObjectif,30); AReponse(YNomFicObjectif,29);
{$i-} {$i-}
assign(XFitext,YRepO+YNomFicObjectif); assign(XFitext,YRepO+YNomFicObjectif);
reset(XFiText); reset(XFiText);
...@@ -292,7 +292,7 @@ procedure TesteDelai(ZT:double); ...@@ -292,7 +292,7 @@ procedure TesteDelai(ZT:double);
write('nom du fichier des dbits naturels ? '); write('nom du fichier des dbits naturels ? ');
Alecture_xy; Alecture_xy;
repeat repeat
AReponse(YNomFicDebit,43); AReponse(YNomFicDebit,42);
assign(YFitext,YRepD+YNomFicDebit); assign(YFitext,YRepD+YNomFicDebit);
reset(YFiText); reset(YFiText);
XCode:=ioresult; XCode:=ioresult;
......
...@@ -9,6 +9,7 @@ const ...@@ -9,6 +9,7 @@ const
YNmaxLacs = 4; {nombre maximal de lacs autoris‚} YNmaxLacs = 4; {nombre maximal de lacs autoris‚}
YNmaxStat = 30; YNmaxStat = 30;
YnbmaxIter = 100; YnbmaxIter = 100;
YNbmaxVersion = 25; {nombre max de versions de paramŠtres barrages et r‚seaux}
YTouComNul : double = 1e-10; YTouComNul : double = 1e-10;
YSeuilConv = 1e-10; {seuil de convergence} YSeuilConv = 1e-10; {seuil de convergence}
...@@ -68,10 +69,12 @@ const ...@@ -68,10 +69,12 @@ const
'identifiant amont','identifiant intermediaire','PKV','PKM', 'identifiant amont','identifiant intermediaire','PKV','PKM',
'PKamont','TV','TM','Tamont','Tintermediaire','Saval','SV', 'PKamont','TV','TM','Tamont','Tintermediaire','Saval','SV',
'SM','Samont','Sintermediaire'); 'SM','Samont','Sintermediaire');
YRepB ='BARRAGES\';
YRepR ='RESULTAT\'; YRepR ='RESULTAT\';
YRepD ='DONNEES\'; YRepD ='DONNEES\';
YRepO ='OBJECTIF\'; YRepO ='OBJECTIF\';
YRepP ='PARAMETR\'; YRepP ='PARAMETR\';
YRepS ='RESEAUX\';
YRepT ='TEMPORAI.RE\'; YRepT ='TEMPORAI.RE\';
YSeparateur : set of byte = [0..39,42,44,58,59,123..255]; YSeparateur : set of byte = [0..39,42,44,58,59,123..255];
YSeuilRconv = 0.001; {seuil relatif de convergence dans le calcul … rebours, sur volume lac} YSeuilRconv = 0.001; {seuil relatif de convergence dans le calcul … rebours, sur volume lac}
...@@ -99,6 +102,8 @@ var ...@@ -99,6 +102,8 @@ var
YNomFicDebit : string; {nom du fichier des d‚bits naturels} YNomFicDebit : string; {nom du fichier des d‚bits naturels}
YNomFicObjectif: string; {nom du fichier des d‚bits objectifs} YNomFicObjectif: string; {nom du fichier des d‚bits objectifs}
YNomRepBarrage : string; {nom du r‚pertoire (chemin complet) des fichiers de rŠgles barrage}
YNomRepReseau : string; {nom du r‚pertoire (chemin complet) des fichiers de r‚seaux associ‚s aux barrages}
YExtension : string[2]; YExtension : string[2];
YNum : string[2]; YNum : string[2];
...@@ -148,6 +153,8 @@ var ...@@ -148,6 +153,8 @@ var
YQuant : integer; YQuant : integer;
YRangDelai : integer; {rang de d‚bit dans tableau YQ} YRangDelai : integer; {rang de d‚bit dans tableau YQ}
YRangLac : integer; {rang du lac} YRangLac : integer; {rang du lac}
YRangPBarrage : integer; {rang et nom du sous-r‚pertoire contenant une version de paramŠtres r‚servoirs}
YRangPReseau : integer; {rang et nom du sous-r‚pertoire contenant une version de paramŠtres r‚seau}
YrangStatAval : integer; {rang de station aval syst. dans fichier des d‚bits de base} YrangStatAval : integer; {rang de station aval syst. dans fichier des d‚bits de base}
YSuccesRepart : integer; {code objectif r‚partition : -1= non atteint, 0=non converg‚, 1=atteint, 2=d‚pass‚} YSuccesRepart : integer; {code objectif r‚partition : -1= non atteint, 0=non converg‚, 1=atteint, 2=d‚pass‚}
YTest : integer; {1 si croissance de pr‚lŠvement total en fonction de QS0, 0 sinon} YTest : integer; {1 si croissance de pr‚lŠvement total en fonction de QS0, 0 sinon}
......
...@@ -14,7 +14,7 @@ procedure YSaisie7; ...@@ -14,7 +14,7 @@ procedure YSaisie7;
procedure Ysaisie8; procedure Ysaisie8;
procedure YSaisie9; procedure YSaisie9;
procedure YSaisie10; procedure YSaisie10;
procedure YSaisie11;
IMPLEMENTATION IMPLEMENTATION
...@@ -28,6 +28,7 @@ IMPLEMENTATION ...@@ -28,6 +28,7 @@ IMPLEMENTATION
procedure Ysaisie2; procedure Ysaisie2;
begin begin
aquest; aquest;
writeln;
write('type du dbit objectif : minimal ('); write('type du dbit objectif : minimal (');
ASulad; ASulad;
write(0); write(0);
...@@ -107,6 +108,18 @@ IMPLEMENTATION ...@@ -107,6 +108,18 @@ IMPLEMENTATION
ATapez; ATapez;
end; end;
procedure Ysaisie11;
begin
Awindow1;
clrscr;
ATitre;
writeln;
writeln;
writeln('ECHEC DU PROGRAMME');
Atapez;
end;
BEGIN BEGIN
......
...@@ -9,7 +9,7 @@ USES crt, Utilit; ...@@ -9,7 +9,7 @@ USES crt, Utilit;
const const
ANbTouchSpecial = 3; ANbTouchSpecial = 3;
ANomFicTailleFenetre='TaillFen.txt';
type type
ATypTouch = array[1..ANbTouchSpecial] of boolean; ATypTouch = array[1..ANbTouchSpecial] of boolean;
...@@ -28,11 +28,13 @@ var ...@@ -28,11 +28,13 @@ var
ATouchSpecial : ATypTouch; {1: chap; 2:suppr; 3:arrire} ATouchSpecial : ATypTouch; {1: chap; 2:suppr; 3:arrire}
ARangTouchSpecial:integer; ARangTouchSpecial:integer;
ALignemax : integer; ALignemax : integer;
ALignmaxEcran : integer;
Ax : integer; Ax : integer;
Ay : integer; Ay : integer;
ADelai : integer; ADelai : integer;
AMotDepasse : AChai4; AMotDepasse : AChai4;
ADestin : integer; {1:impression, 2:fichier, 3:cran} ADestin : integer; {1:impression, 2:fichier, 3:cran}
Alst : text;
procedure ASautScr(Zi:integer); procedure ASautScr(Zi:integer);
procedure ASouligne(Zn:integer); procedure ASouligne(Zn:integer);
...@@ -138,6 +140,7 @@ procedure AAvorte; ...@@ -138,6 +140,7 @@ procedure AAvorte;
procedure ATapez; procedure ATapez;
var XCh:char; var XCh:char;
begin begin
while keypressed do Xch:=readkey;
ASautscr(2);write('tapez une touche'); ASautscr(2);write('tapez une touche');
Abruit; repeat until keypressed; while keypressed do XCh:=readkey; Abruit; repeat until keypressed; while keypressed do XCh:=readkey;
end; end;
...@@ -378,7 +381,7 @@ procedure ASaisidate(var Zjour,Zmois,Zan:integer; var ZDada:string; ZDadamin,ZDa ...@@ -378,7 +381,7 @@ procedure ASaisidate(var Zjour,Zmois,Zan:integer; var ZDada:string; ZDadamin,ZDa
if not XBon then if not XBon then
begin begin
AAlerte; AAlerte;
if wherey=25 then Ay:=23; if wherey=ALignemax then Ay:=ALignemax-1;
end; end;
until XBon until XBon
{$i+} {$i+}
...@@ -387,37 +390,37 @@ procedure ASaisidate(var Zjour,Zmois,Zan:integer; var ZDada:string; ZDadamin,ZDa ...@@ -387,37 +390,37 @@ procedure ASaisidate(var Zjour,Zmois,Zan:integer; var ZDada:string; ZDadamin,ZDa
{----------------------------------------------------------------------------} {----------------------------------------------------------------------------}
procedure AWindow(C1,L1,C2,L2:integer); begin; window(C1,L1,C2,L2); Alignemax:=L2-L1+1; end; procedure AWindow(C1,L1,C2,L2:integer); begin; window(C1,L1,C2,L2); Alignemax:=L2-L1+1; end;
procedure Awindow1; begin ; window(1,1,80,25); ALignemax:=25; end; procedure Awindow1; begin ; window(1,1,80,ALignmaxEcran); ALignemax:=ALignmaxEcran; end;
procedure Awindow15;begin ; window(1,2,80,25); ALignemax:=24; end; procedure Awindow15;begin ; window(1,2,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-1; end;
procedure Awindow2; begin ; window(1,3,80,25); ALignemax:=23; end; procedure Awindow2; begin ; window(1,3,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-2; end;
procedure Awindow25;begin ; window(1,4,80,25); ALignemax:=22; end; procedure Awindow25;begin ; window(1,4,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-3; end;
procedure Awindow3; begin ; window(1,5,80,25); ALignemax:=21; end; procedure Awindow3; begin ; window(1,5,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-4; end;
procedure Awindow35;begin ; window(1,6,80,25); ALignemax:=20; end; procedure Awindow35;begin ; window(1,6,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-5; end;
procedure Awindow355; begin ; window(1,7,80,25); ALignemax:=19; end; procedure Awindow355; begin ; window(1,7,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-6; end;
procedure Awindow4; begin ; window(1,8,80,25); ALignemax:=18; end; procedure Awindow4; begin ; window(1,8,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-7; end;
procedure Awindow45;begin ; window(1,10,80,25); ALigneMax:=16; end; procedure Awindow45;begin ; window(1,10,80,ALignmaxEcran); ALigneMax:=ALignmaxEcran-9; end;
procedure Awindow451;begin ; window(1,11,80,25); ALigneMax:=15; end; procedure Awindow451;begin ; window(1,11,80,ALignmaxEcran); ALigneMax:=ALignmaxEcran-10; end;
procedure Awindow455;begin ; window(1,12,80,25); ALigneMax:=14; end; procedure Awindow455;begin ; window(1,12,80,ALignmaxEcran); ALigneMax:=ALignmaxEcran-11; end;
procedure Awindow4555; begin ; window(1,13,80,25); ALignemax:=13; end; procedure Awindow4555; begin ; window(1,13,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-12; end;
procedure Awindow5; begin ; window(1,14,80,25); Alignemax:=12; end; procedure Awindow5; begin ; window(1,14,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-13; end;
procedure Awindow55; begin ; window(1,15,80,25); Alignemax:=11; end; procedure Awindow55; begin ; window(1,15,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-14; end;
procedure Awindow6; begin ; window(1,16,80,25); Alignemax:=10; end; procedure Awindow6; begin ; window(1,16,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-15; end;
procedure Awindow7; begin ; window(1,18,80,25); Alignemax:=8; end; procedure Awindow7; begin ; window(1,18,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-17; end;
{----------------------------------------------------------------------------} {----------------------------------------------------------------------------}
...@@ -439,5 +442,18 @@ procedure Aeditmajusc; ...@@ -439,5 +442,18 @@ procedure Aeditmajusc;
BEGIN BEGIN
Textmode(lo(lastmode)); Textmode(lo(lastmode));
ALignemax:=25; ALignemax:=25;
ALignmaxEcran:=25;
{$i-}
assign(Alst,ANomFicTailleFenetre);
reset(Alst);
read(Alst,ALignMaxEcran);
if ioresult=0 then
begin
if (AlignMaxEcran>95) or (AlignMaxEcran<9) then
ALignMaxEcran:=25;
close(Alst);
end;
{$i+}
END. END.

\ No newline at end of file
...@@ -57,6 +57,8 @@ procedure ChoixEntreeOptions; ...@@ -57,6 +57,8 @@ procedure ChoixEntreeOptions;
if ioresult=0 then if ioresult=0 then
begin begin
readln(YFitext,YNomFicLacs); readln(YFitext,YNomFicLacs);
readln(YFitext,YRangPBarrage);
readln(YFitext,YRangPReseau);
readln(YFitext,YNomFicDebit); readln(YFitext,YNomFicDebit);
readln(YFitext,YNomFicObjectif); readln(YFitext,YNomFicObjectif);
readln(YFitext,YTypeObjectif); readln(YFitext,YTypeObjectif);
...@@ -150,9 +152,14 @@ procedure TestLecture (ZRangLac,ZTypeDebit,ZRangDonnee,ZRang : integer); ...@@ -150,9 +152,14 @@ procedure TestLecture (ZRangLac,ZTypeDebit,ZRangDonnee,ZRang : integer);
procedure EntreesLac; procedure EntreesLac;
var var
XIoResult : integer;
XSeraRien : integer; XSeraRien : integer;
Xi : integer; Xi : integer;
XNbVersion : integer;
XChai8 : YChai8; XChai8 : YChai8;
XFic : text;
XEnTete : string;
XRangVersion : array[1..YNbmaxVersion] of integer;
BEGIN {dbut de procedure EntreeLacs} BEGIN {dbut de procedure EntreeLacs}
...@@ -164,44 +171,47 @@ procedure EntreesLac; ...@@ -164,44 +171,47 @@ procedure EntreesLac;
writeln(' RESERVOIRS POUR POUVOIR SATISFAIRE AU MIEUX UN OBJECTIF DE GESTION COMMUN'); writeln(' RESERVOIRS POUR POUVOIR SATISFAIRE AU MIEUX UN OBJECTIF DE GESTION COMMUN');
writeln(' (HYDROGRAMME ANNUEL MINIMAL OU MAXIMAL DEFINI A UNE STATION SITUEE A L''AVAL)'); writeln(' (HYDROGRAMME ANNUEL MINIMAL OU MAXIMAL DEFINI A UNE STATION SITUEE A L''AVAL)');
writeln; writeln;
write('Le calcul ncessite certains paramtres et donnes pralablement saisis selon un'); writeln('Le calcul ncessite certains paramtres et donnes pralablement saisis selon');
writeln('format impos dans des fichiers texte situs dans les rpertoires suivants : '); writeln('un format impos dans des fichiers texte situs dans les rpertoires suivants :');
writeln(YRepP,' : '); writeln(YRepP,' : ');
writeln('-un fichier localisant l''objectif de gestion et listant les rservoirs situs '); writeln(' -un fichier localisant l''objectif de gestion et listant les rservoirs situs');
writeln(' l''amont avec leurs capacits et les temps de propagation jusqu'' l''aval'); writeln(' l''amont avec les temps de propagation entre ceux-ci et l''objectif');
writeln('-deux fichiers par rservoir, prcisant : 1) ses contraintes et consignes de'); writeln(' -un fichier (facultatif) nomm ',YNomFicTpsRet,', listant les temps de retour');
writeln(' gestion ; 2) les stations utiliser, les temps de propagation et les'); writeln(' utiliser pour l''analyse statistique des rsultats');
writeln(' superficies de bassin versant ncessaires, pour le calcul des dbits naturels'); writeln('Sous-rpertoire de ',YRepP,YRepB,' (nom : entier entre 1 et ',YNbmaxVersion,') :');
writeln(' aux points de prise et de restitution'); writeln(' -un fichier par rservoir prcisant ses contraintes et consignes de gestion');
writeln('-un fichier (facultatif) nomm ',YNomFicTpsRet,', listant les temps de retour '); writeln('Sous-rpertoire de ',YRepP,YRepS,' (nom : entier entre 1 et ',YNbmaxVersion,' ) :');
writeln(' utiliser pour l''analyse statistique des rsultats'); writeln(' -un fichier par rservoir prcisant les stations utiliser, les temps de ');
writeln(' propagation et les superficies de bassin versant ncessaires, pour le');
writeln(' calcul des dbits naturels aux points de prise et de restitution');
writeln(YRepD,' : '); writeln(YRepD,' : ');
writeln('-un fichier des dbits journaliers naturels aux stations ncessaires'); writeln(' -un fichier des dbits journaliers naturels aux stations ncessaires');
writeln(YRepO,' : '); writeln(YRepO,' : ');
writeln('-un fichier dfinisant l''hydrogramme objectif annuel la station aval'); writeln(' -un fichier dfinissant l''hydrogramme objectif annuel la station aval');
writeln; writeln;
writeln('Les rsultats sont dits en fichiers texte dans le rpertoire ',YRepR); write('Les rsultats sont dits en fichiers texte dans le rpertoire ',YRepR);
ATapez; ATapez;
aquest; atexte;
clrscr; clrscr;
Aquest;
write('nom du fichier localisant l''objectif de gestion (station aval) ? '); write('nom du fichier localisant l''objectif de gestion (station aval) ? ');
Alecture_xy; Alecture_xy;
AReponse(YNomFicLacs,15); AReponse(YNomFicLacs,14);
ATitre;
end; end;
writeln(YFicSortie,'Nom du fichier localisant l''objectif aval et caracterisant les reservoirs ', writeln(YFicSortie,'Nom du fichier localisant l''objectif aval, listant les reservoirs ',
'situes a l''amont : ',YNomFicLacs); 'situes a l''amont et donnant les temps de propagation : ',YNomFicLacs);
writeln(YFicSortie); writeln(YFicSortie);
YResume:='systeme = '+YNomFicLacs+'['; YResume:='systeme = '+YNomFicLacs+'[';
{--ouverture du fichier des paramtres des lacs--} {--ouverture du fichier des paramtres de station aval--}
{$i-} {$i-}
assign(YFitext,YrepP+YNomFicLacs); assign(YFitext,YRepP+YNomFicLacs);
YOuvertEtLu:=false; YOuvertEtLu:=false;
reset(YFitext); reset(YFitext);
{--cas d'ouverture correcte du fichier des paramtres des lacs--} {--cas d'ouverture correcte du fichier des paramtres de station aval--}
if ioresult=0 then if ioresult=0 then
begin begin
...@@ -248,7 +258,8 @@ procedure EntreesLac; ...@@ -248,7 +258,8 @@ procedure EntreesLac;
begin begin
{--criture en sortie--} {--criture en sortie--}
write(YFicSortie,'AUCUN'); writeln(YFicSortie,'AUCUN');
writeln(YFicSortie);
{--lecture ventuelle des rglages--} {--lecture ventuelle des rglages--}
assign(YFitext,YNomFicReglage); assign(YFitext,YNomFicReglage);
...@@ -274,17 +285,159 @@ procedure EntreesLac; ...@@ -274,17 +285,159 @@ procedure EntreesLac;
for YRanglac:=1 to YNbLacs do for YRanglac:=1 to YNbLacs do
YReglage[Yranglac]:=0; YReglage[Yranglac]:=0;
{--Choix de la version des paramtres de contraintes et consignes.--}
{--Ce bloc permet de dfinir le nom YNomRepBarrage du rpertoire --}
{--contenant les fichiers caractrisant les contraintes et --}
{--de chaque rservoir. --}
if YSaisie then
begin
ATitre;
writeln;
writeln('versions disponibles pour les contraintes et consignes de rservoirs :');
XNbVersion:=0;
for Xi:=1 to YNbMaxVersion do
begin
str(Xi,YNomRepBarrage);
YNomRepBarrage:=YRepP+YRepB+YNomRepBarrage+'\';
assign(XFic,YNomRepBarrage+'version.txt');
reset(XFic);
if IOResult=0 then
begin
readln(XFic,XEnTete);
if IOResult=0 then
begin
XNbVersion:=XNbVersion+1;
APropo;
write(XNbVersion:2);
ATitre;
writeln(' : [',Xi:2,'] ',XEntete);
XRangVersion[XNbVersion]:=Xi;
end;
close(XFic);
end;
end;
if XNbVersion=0 then
begin
YRangPBarrage:=0;
writeln('Liste vide. Calcul impossible');
ATapez;
end
else
begin
if XNbVersion=1 then
begin
Xi:=1;
writeln('Cette version des paramtres sera utilise pour les calculs.');
end
else
begin
AQuest;
write('version de paramtres utiliser (entre 1 et ',XNbVersion,') ? ');
ASaisiInt(Xi,1,XNbVersion,2);
end;
YRangPBarrage:=XRangVersion[Xi];
end;
writeln;
end;
if YRangPBarrage>0 then
begin
str(YRangPBarrage,YNomRepBarrage);
YNomRepBarrage:=YRepP+YRepB+YNomRepBarrage+'\';
assign(XFic,YNomRepBarrage+'version.txt');
reset(XFic);
readln(XFic,XEnTete);
close(XFic);
writeln(YFicSortie,'Version utilisee pour les parametres de consignes et contraintes locales : rang ',YRangPBarrage);
writeln(YFicSortie,' (',XEntete,')');
writeln(YFicSortie);
end
else
writeln(yFicSortie,'Aucune version disponible pour les parametres de consignes et contraintes locales des reservoirs. Calcul impossible.');
flush(YFicSortie);
{--Cas o une version de paramtres de rgles et consignes locales a--}
{--pu tre slectionn : alors choix de la version des paramtres de--}
{--rseaux. Ce bloc permet de dfinir le nom YNomRepReseau du --}
{--rpertoire contenant les fichiers caractrisant le rseau de --}
{--stations associ chaque rservoir. --}
if YRangPBarrage>0 then
begin
if YSaisie then
begin
ATitre;
writeln('versions disponibles pour les rseaux de stations associs aux rservoirs :');
XNbVersion:=0;
for Xi:=1 to YNbMaxVersion do
begin
str(Xi,YNomRepReseau);