Pagini recente » Cod sursa (job #1807997) | Cod sursa (job #2342851) | Cod sursa (job #1264083) | Cod sursa (job #2609856) | Cod sursa (job #1359340)
#include<fstream>
#include<cstring>
#include<iostream>
#include<vector>
#include<ctype.h>
using namespace std;
int main()
{
ifstream f("convertor.in");
ofstream g("convertor.out");
int i,j,var,t=0;
string a;
vector<string> strings;
char b[1024],c[1024];
while(!f.eof())
{
f.getline(b,1024);
i=0;
while(i<strlen(b))
{
if(b[i]=='}'&&t==1) //daca au fost afisate cheile se afiseaza doar valorile cheilor din urmatoarele obiecte
{
g<<"\n";
for(j=1;j<strings.size();j+=2)
g<<strings[j]<<",";
strings.clear();
vector<string>(strings).swap(strings);
}
if(b[i]=='}'&&t==0) //daca nu au fost afisate cheile si s-a terminat prima eticheta, afiseaza cheile + primul obiect
{
t=1;
for(j=0;j<strings.size();j+=2)
g<<strings[j]<<",";
g<<"\n";
for(j=1;j<strings.size();j+=2)
g<<strings[j]<<",";
strings.clear();
vector<string>(strings).swap(strings);
}
if(b[i]=='"') //daca e sir
{
i++;
var=i;
while(b[i]!='"')
c[i-var]=b[i++];
c[i-var]='\0';
strings.push_back(c);
i++;
}
else
{
if(isdigit(b[i])) //daca e numar
{
var=i;
while(isdigit(b[i]))
c[i-var]=b[i++];
c[i-var]='\0';
strings.push_back(c);
if(b[i]=='}')
i--;
}
i++;
}
}
}
}