Pagini recente » Cod sursa (job #1084240) | Cod sursa (job #3201338) | Cod sursa (job #1929716) | Cod sursa (job #1349685) | Cod sursa (job #1361051)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *s;
long int dim;
long int i;
char *unu;
char *doi;
int ok = 0;
int cadru = 0;
int sir = 0;
FILE *f = fopen("convertor.in", "rb");
FILE *g = fopen("convertor.out", "w");
fseek(f,0,2);
dim = ftell(f);
fseek(f,0,0);
s = (char *)malloc(dim*sizeof(char));
fread(s,sizeof(char),dim,f);
i = 0;
unu = (char *)malloc(dim*sizeof(char));
doi = (char *)malloc(dim*sizeof(char));
memcpy(unu, "n", 1);
memcpy(doi, "n", 1);
while (i != strlen(s))
{
switch (cadru)
{
case 0:
while (s[i] != '"' && i != strlen(s))
{
if (s[i] == '}' && ok == 0)
{
ok = 1;
memcpy(unu, unu + 1, strlen(unu));
memcpy(doi, doi + 1, strlen(doi));
fprintf(g, "%s\n%s", unu, doi);
}
if (s[i] == '{' && ok == 1)
{
fprintf(g, "\n");
}
i++;
}
cadru = 1;
break;
case 1:
while (s[i] != '"' && i != strlen(s))
i++;
i++;
while (s[i] != '"' && i != strlen(s))
{
if (ok == 0)
strncat(unu, s + i, 1);
i++;
}
cadru = 2;
if (ok == 0)
strcat(unu, ",");
i++;
break;
case 2:
while (s[i] != '"' && (s[i] < '0' || s[i] > '9') && i != strlen(s))
i++;
if (s[i] == '"') sir = 1;
cadru = 3;
break;
case 3:
if (sir == 1)
{
sir = 0;
i++;
while (s[i] != '"')
{
if (ok == 0)
strncat(doi, s + i, 1);
else fprintf(g, "%c", s[i]);
i++;
}
i++;
}
else
{
while (s[i] >= '0' && s[i] <= '9' && i != strlen(s))
{
if (ok == 0)
strncat(doi, s + i, 1);
else fprintf(g, "%c", s[i]);
i++;
}
}
if (ok == 0)
strcat(doi, ",");
else
{
fprintf(g, ",");
}
cadru = 0;
break;
}
}
fprintf(g, "\n");
fclose(f);
fclose(g);
return 0;
}