@@ -88,18 +88,19 @@ namespace FPL {
8888
8989 if (fichierName.has_value ()) {
9090 if (arg->mText == " ecrire" ) {
91- std::ofstream file { fichierName->StatementName };
92- if (!file) {
93- std::cerr << " Donnez le nom correct du fichier : '" << fichierName->StatementName << " '." << std::endl;
94- exit (1 );
95- }
9691 if (CheckerOperateur (" -" ).has_value ()) {
9792 if (CheckerOperateur (" >" ).has_value ()) {
9893 auto valueInFile = CheckerValue ();
9994 if (valueInFile.has_value ()) {
10095 if (CheckerOperateur (" ;" ).has_value ()) {
96+ std::ofstream file { fichierName->StatementName };
97+ /* if (!file) {
98+ std::cerr << "Donnez le nom correct du fichier : '" << fichierName->StatementName << "'." << std::endl;
99+ exit(1);
100+ }*/
101101 std::replace (valueInFile->StatementName .begin (), valueInFile->StatementName .end (), ' "' , ' ' );
102102 file << valueInFile->StatementName << std::endl;
103+ file.close ();
103104 return true ;
104105 }
105106 std::cerr << " Vous devez mettre le symbole ';' pour mettre fin a l'instruction." << std::endl;
@@ -117,14 +118,14 @@ namespace FPL {
117118 exit (1 );
118119 }
119120 } else if (arg->mText == " lire" ) {
120- std::ifstream file { fichierName->StatementName };
121- if (!file) {
122- std::cerr << " Donnez le nom correct du fichier : '" << fichierName->StatementName << " ' ." << std::endl;
123- exit (1 );
124- }
125121 auto varName = CheckerIdentifiant ();
126122 if (varName.has_value ()) {
127123 if (CheckerOperateur (" ;" ).has_value ()) {
124+ std::ifstream file { fichierName->StatementName };
125+ if (!file) {
126+ std::cerr << " Donnez le nom correct du fichier : '" << fichierName->StatementName << " '." << std::endl;
127+ exit (1 );
128+ }
128129 std::string f_content ((std::istreambuf_iterator<char >(file)), (std::istreambuf_iterator<char >()));
129130 VariableDefinition variable;
130131 variable.VariableName = varName->mText ;
@@ -137,6 +138,7 @@ namespace FPL {
137138 }
138139 variable.VariableValue = f_content;
139140 mVariables [variable.VariableName ] = variable;
141+ file.close ();
140142 return true ;
141143 }
142144 std::cerr << " Vous devez mettre le symbole ';' pour mettre fin a l'instruction." << std::endl;
0 commit comments