Pagini recente » Cod sursa (job #3167637) | Cod sursa (job #1341590) | Cod sursa (job #3199262) | Cod sursa (job #2201654) | Cod sursa (job #1348742)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
FILE *f,*g;
int i,j,a=0,b=0,nc=0;
char cp,c, *p,*q,*bf;
f=fopen("convertor.in","rt");
g=fopen("convertor.out","wt");
if(f == NULL)
perror("Eroare la deschiderea fisierului JSON");
if(g == NULL)
perror("Eroare la crearea fisierului CSV");
i=0;
int nrg=0;//Nr ghilimele pentru spatii & shit
while(!feof(f))
{
fscanf(f,"%c",&cp);
nc++;
if(c == ':')
a++;
if(c == '{')
b++;
}
p=malloc(sizeof(char)*nc);
q=malloc(sizeof(char)*nc);
rewind(f);
while(!feof(f))
{
fscanf(f,"%c",&c);
if(c == '"')
nrg++;
if(c == ':' || c == ',' || c =='{' || c == '}')
nrg=0;
if( nrg != 0 && c == ' ')
{
p[i]=c;
i++;
continue;
}
if(c == '\n' || c == ' ')
continue;
p[i]=c;
i++;
}
p[i-1]='\0';
bf=strtok(p,"{}\",:[]");
i=0;
j=0;
while(bf != NULL)
{
if(strcmp(bf," ")!=0)
{
i++;
if(i%2 == 1 && i< (a/b)*2 )
{
fprintf(g,"%s,",bf);
if(i == (a/b)*2 -1)
fprintf(g,"\n");
}
if(i%2 == 0)
{
if(j == 0)
{
strcpy(q,bf);
j++;
strcat(q,",");
}
else if( i%((a/b)*2) == 0)
{
strcat(q,bf);
strcat(q,",");
strcat(q,"\n");
}
else
{
strcat(q,bf);
strcat(q,",");
}
}
}
bf=strtok(NULL,"{}\",:[]");
}
fputs(q,g);
fclose(f);
fclose(g);
return 0;
}