Pagini recente » Cod sursa (job #2873932) | Cod sursa (job #1084337) | Cod sursa (job #2772936) | Cod sursa (job #1084332) | Cod sursa (job #1360630)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *headers(int *virgule)
{
FILE *f;
char *buffer;
char *capete;
int size = 50;
capete = malloc(size);
// int virgule = 0;
int i, a = 0, p = 0, g = 0, index = 0;
buffer = malloc(1024);
f = fopen("convertor.in", "r");
//buffer = strstr(buffer, "{");
//fputs (buffer,stdout);
while (1) {
fgets(buffer, 1024, f);
for (i = 0; i < strlen(buffer); i++) {
if (strlen(capete) + 3 > size) {
capete = realloc(capete, size * 2);
size *= 2;
}
if (buffer[i] == ',')
a++;
if (buffer[i] == '}') {
//printf("\nAICI%d",virgule);
return capete;
} else if (buffer[i] == ':')
p++;
if (a == p) {
if (buffer[i] == '\"') {
g++;
if (g % 2 == 0) {
capete[index] = ',';
index++;
(*virgule)++;
//printf("%d", *virgule);
}
}
if (g % 2 == 1 && buffer[i] != '\"') {
capete[index] = buffer[i];
index++;
}
}
}
}
return capete;
}
void corp(int n)
{
FILE *f;
char *buffer;
int i;
int contor = 0;
// int i, a = 0, p = 0;
char *ptr;
buffer = malloc(1024);
f = fopen("convertor.in", "r");
while ((fgets(buffer, 1024, f)) != NULL) {
//printf("%d %d", n, contor);
ptr = strchr(buffer, ':');
if (ptr != NULL) {
for (i = 0; i < strlen(ptr); i++) {
if (ptr[i] == '\"') {
i++;
while (ptr[i] != '\"') {
printf("%c", ptr[i]);
i++;
}
printf(",");
contor++;
break;
}
if (ptr[i] >= 48 && ptr[i] <= 57) {
while (ptr[i] >= 48 && ptr[i] <= 57) {
printf("%c", ptr[i]);
i++;
}
i--;
printf(",");
contor++;
break;
}
}
if (contor == n) {
printf("\n");
contor = 0;
}
ptr++;
while ((ptr = strchr(ptr, ':')) != NULL) {
for (i = 0; i < strlen(ptr); i++) {
if (ptr[i] == '\"') {
i++;
while (ptr[i] != '\"') {
printf("%c", ptr[i]);
i++;
}
printf(",");
contor++;
break;
}
if (ptr[i] >= 48 && ptr[i] <= 57) {
while (ptr[i] >= 48
&& ptr[i] <= 57) {
printf("%c", ptr[i]);
i++;
}
i--;
printf(",");
contor++;
break;
}
}
ptr++;
}
}
}
if ( contor != 0)
printf("\n");
}
int main()
{
char *capete;
int cuvinte = 0;
freopen("convertor.out", "w", stdout);
capete = headers(&cuvinte);
printf("%s\n", capete);
corp(cuvinte);
return 0;
}