Pagini recente » Cod sursa (job #1868472) | Cod sursa (job #993486) | Cod sursa (job #1232562) | Cod sursa (job #2772375) | Cod sursa (job #1357008)
#include <fstream>
#include <cstring>
#include <string>
#define N 1000
using namespace std;
void prima_lin(fstream &f, fstream &g)
{
char ch;
string cheie;
do
{
while (f>>skipws>>ch)
if (ch=='"')
break;
f>>noskipws>>ch;
while (ch!='"')
{
cheie+=ch;
f>>noskipws>>ch;
}
cheie+=',';
g<<cheie;
cheie.clear();
while (f>>skipws>>ch)
if (ch==',' || ch=='}')
break;
}while(ch!='}');
g<<'\n';
}
void scrie_lin(fstream &f, fstream &g)
{
char ch;
int nr;
string valoare;
bool text;
do
{
while (f>>skipws>>ch)
if (ch==':')
break;
f>>skipws>>ch;
text=0;
if (ch=='"')
text=1;
if (text)
{
f>>noskipws>>ch;
while (ch!='"')
{
valoare+=ch;
f>>noskipws>>ch;
}
valoare+=',';
f>>skipws>>ch;
}
else
{
valoare+=ch;
f>>skipws>>ch;
while (ch!=',' && ch!='}' )
{
if(ch!='\n' && ch!='\t')
valoare+=ch;
f>>skipws>>ch;
}
valoare+=',';
}
g<<valoare;
valoare.clear();
}while (ch!='}');
g<<'\n';
}
int main()
{
char ch;
fstream f,g;
f.open("convertor.in",ios::in);
g.open("convertor.out",ios::out);
while (f>>ch)
if (ch=='{')
break;
//scriem prima linie (cheile)
prima_lin(f,g);
f.seekg(0,ios::beg);
while (f>>ch)
{
if (ch=='{')
scrie_lin(f,g);//scriem valorile
if (ch==']')
break;
}
return 0;
}