Pagini recente » Cod sursa (job #1876861) | Cod sursa (job #1735586) | Cod sursa (job #2133004) | Cod sursa (job #586793) | Cod sursa (job #1355773)
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
#define NMAX 9000000000
char sir[9000000007],aux[9000000007];
int nr;
ifstream fin("convertor.in");
ofstream fout("convertor.out");
void prima_linie()
{
fin.getline(sir,NMAX,'}');
strcpy(aux,sir);
//fout<<sir[strlen(sir)-1];
// fout<<sir<<endl;
char * p;
int i;
p = strtok (sir,",");
//p = strtok (NULL,",");
while (p != NULL)
{
i=0;
while(p[i++] != '"'); // cauta prima aparitie a ghilimelei
while(p[i] != '\"') //afiseaza cuvantul cheie
{
fout<<p[i];
i++;
}
fout<<',';
// fout<<p<<"@";
p = strtok (NULL,",");
//strtok pozitionat fix dupa virgula; la inceputul lui "p" va fi aflat urmatorul cuvant ce trebuie scris
nr++; //cate chei am
}
//fout<<endl<<aux;
}
void celelalte_linii()
{
char * p;
int i, linia1=1; //linia1 retine daca am afisat linia 1 (1) sau nu (0)
while(linia1 || !fin.eof())
{
fout<<'\n';
p = strtok (aux,":");
p=strtok(NULL,":");
while (p != NULL)
{
i=0;
while(p[i++] != ' ');
if(p[i] == '\"') //caz 1: valoarea e sir de caractere
while(p[++i] != '\"')
fout<<p[i];
else
while(p[i] != ' ' && p[i] != ',') //caz 2: valoarea e un numar
fout<<p[i++];
//fout<<p;
fout<<',';
p = strtok (NULL,":");
}
linia1=0;
fin.getline(aux,NMAX,'}');
}
}
int main()
{
prima_linie();
celelalte_linii();
}