Cod sursa(job #1346556)

Utilizator cristian.cazanCristian-Claudiu Cazan cristian.cazan Data 18 februarie 2015 12:54:27
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.69 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main ()
{
    int obj=1, rand=1, i=0, n=0, j=0,nrind=0; // obj numara obiectele,i numara liniile din obiect , n face diferenta intre index si caracteristicile obiectului , j si k sunt valori pentru vectorii char
    char c, elem[10][10][60],ind[10][60];
    FILE *f, *g;
    f = fopen("convertor.in","rt");
    if(f == NULL)
        perror("EROARE LA DESCHIDEREA FISIERULUI JSON!!!");
    g = fopen("convertor.out","wt");
    if(g == NULL)
        perror("EROARE LA CREAREA FISIERULUI CSV!!!");
    while( !feof(f) )
    {
        fscanf(f,"%c",&c);
        printf("%c",c);
        if(c == '}')
            obj++;
        if( c == '{')
            rand=1;
        if(c == ':' && obj ==1)
            nrind++;// numarul de randuri dintr-un obiect
        if(c == ',')
        {
            n=0;
            i=0;
            j=0;
            rand++;
        }
        //INDEXII

        if(c == '"')
            n++;
        if(n == 1 && obj == 1 && c != '"')
        {
            ind[rand][i]=c;
            i++;
        }
        //CARACTERISTICILE OBIECTELOR
        if(n==2 && (c == ' ' || c ==':'))
            continue;
        if(c != '"' && c !=',' && c!='}'  && n>=2 )
        {
            elem[obj][rand][j]=c;
            j++;
        }

    }
    //scriem in fisierul CSV indexii
    for(i=1;i<=rand;i++)
        fprintf(g,"%s,",ind[i]);
    fprintf(g,"\n");
    //Scriem elementele in fisierul CSV
    for(i=1;i<=obj;i++)
    {
        for(j=1;j<=rand;j++)
            fprintf(g,"%s,",elem[i][j]);

        fprintf(g,"\n");
    }

    fclose(f);
    fclose(g);
    return 0;
}