Pagini recente » Cod sursa (job #702660) | Cod sursa (job #890877) | Cod sursa (job #2219211) | Cod sursa (job #1131970) | Cod sursa (job #1360722)
#include <stdio.h>
void write_keys(FILE *in, FILE *out) {
char c;
while ((c = fgetc(in)) != '{') {
if (c == ']') {
return;
}
}
while (1) {
while ((c = fgetc(in)) != '"') {
if (c == '}') {
return;
}
}
while ((c = fgetc(in)) != '"') {
fputc(c, out);
}
fputc(',', out);
while ((c = fgetc(in)) != ',') {
if (c == '}') {
return;
}
}
}
}
void write_object_values(FILE *in, FILE *out) {
char c;
fputc('\n', out);
while ((c = fgetc(in)) != '}') {
if (c == ':') {
while ((c = fgetc(in)) != ',') {
if (c == '"') {
while ((c = fgetc(in)) != '"') {
fputc(c, out);
}
fputc(',', out);
}
if ((c <= 57) && (c >=48)) {
while ((c <= 57) && (c >=48)) {
fputc(c, out);
c = fgetc(in);
}
fputc(',', out);
}
if (c == ',') {
break;
}
if (c == '}') {
return;
}
}
}
}
}
void write_values(FILE *in, FILE *out) {
char c;
while ((c = fgetc(in)) != ']') {
if (c == '{') {
write_object_values(in, out);
}
}
}
void write_CSV(FILE *in, FILE *out) {
char c;
while ((c = fgetc(in)) != '[') {
if (c == EOF)
return;
}
int pos = ftell(in);
write_keys(in, out);
fseek(in, pos, 0);
write_values(in, out);
}
int main() {
FILE *in = fopen("convertor.in", "r");
FILE *out = fopen("convertor.out", "w");
write_CSV(in, out);
fclose(in); fclose(out);
return 0;
}