Pagini recente » Statistici Antonie Valentin (ValiAntonie) | Cod sursa (job #1955761) | Cod sursa (job #3154040) | Cod sursa (job #2400961) | Cod sursa (job #1355671)
#include <iostream>
#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;
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>>noskipws>>ch;
while (ch!=',' && ch!='}' )
{
if(ch!='\n' && ch!='\t')
valoare+=ch;
f>>noskipws>>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
prima_lin(f,g);
f.seekg(0,ios::beg);
while (f>>ch)
{
if (ch=='{')
scrie_lin(f,g);
if (ch==']')
break;
}
return 0;
}