Skip to content

Commit 5a812ef

Browse files
committed
Fixs.
1 parent 464d2bd commit 5a812ef

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/Parser.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)