Pagini recente » Cod sursa (job #2583921) | Cod sursa (job #1762481) | Cod sursa (job #1759196) | Cod sursa (job #2683929) | Cod sursa (job #1342718)
#include <fstream>
using namespace std;
ifstream f("convertor.in");
ofstream g("convertor.out");
//ofstream h("log.txt");
int state = 1;
void property_automata(char c)
{
switch(state)
{
case 1:
if(c == '"'){
state = 2;
}
break;
case 2:
if(c == '"')
state = 3;
else
g << c;
break;
case 3:
if(c == ','){
state = 1;
g << ',';
}
else if(c == '}'){
state = 4;
g << ',';
}
break;
}
}
void value_automata(char c)
{
switch(state)
{
case 1:
if(c == ':')
state = 2;
else if(c == ']')
state = 6;
break;
case 2:
if(c == '"')
state = 3;
else if(c > 47 && c < 58){
g << c;
state = 5;
}
break;
case 3:
if(c == '"')
state = 4;
else
g << c;
break;
case 4:
if(c == ','){
state = 1;
g << ',';
}
else if(c == '}'){
state = 1;
g << ',';
g << '\n';
}
break;
case 5:
if(c > 47 && c < 58)
{
g << c;
}
else
if(c == ','){
state = 1;
g << ',';
}
else if(c == '}'){
state = 1;
g << ',';
g << '\n';
}
break;
}
}
int main()
{
char n;
while(f >> noskipws >> n && state != 4)
{
property_automata(n);
}
g << "\n";
f.clear();
f.seekg(0,ios::beg);
state = 1;
while(f >> noskipws >> n && state != 6)
{
//h << state << " " << n << endl;
value_automata(n);
}
f.close();
g.close();
return 0;
}