Pagini recente » Cod sursa (job #258833) | Cod sursa (job #1878436) | Cod sursa (job #508995) | Cod sursa (job #1995097) | Cod sursa (job #1345339)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *p, c[2097152], text = 0, nr = 0;
char cc;
int ok = 0, print = 0, k = 0, i = 0, n = 0;
FILE *in, *out;
in = fopen("convertor.in","rt");
out = fopen("convertor.out","wt");
while(1)
{
fread(&c, 1, 2097152, in);
p=strdup(c);
while (p[i]!='}')
{
if (p[i] == ',' || p[i] == '[') {
ok = 1;
}
else if (p[i] == ':') {
ok = 0;
}
if (ok) {
if (p[i] == '"' && print==0)
{
i++;
print = 1;
}
else if (p[i] == '"')
{
print = 0;
n++;
fprintf(out,",");
}
}
if (print){
fwrite(&p[i],1,1,out);
}
i++;
}
break;
}
i=0;
fseek(in, 0, SEEK_SET);
fprintf(out ,"\n");
while(1)
{
fread(&c, 1, 2097152, in);
p=strdup(c);
while((p = strchr(p, ':')) != NULL)
{
p+=1;
k = 0;
text = nr = 0;
while (p[k] != '"' && ( p[k] < '0' || p[k] > '9' ))
k++;
if (p[k] == '"')
k++, text = 1;
else nr = 1;
if (text == 1)
while (p[k]!='"')
{
fwrite(&p[k], 1, 1, out);
k++;
}
else if (nr == 1)
while (p[k] >= '0' && p[k] <= '9')
{
fwrite(&p[k], 1, 1, out);
k++;
}
fprintf(out,",");
i++;
if (i==n)
{
i=0;
fprintf(out ,"\n");
}
}
break;
}
fclose(in);
fclose(out);
return 0;
}