Pagini recente » Cod sursa (job #533709) | Cod sursa (job #1086926) | Cod sursa (job #1361501) | Cod sursa (job #2721522) | Cod sursa (job #1361507)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*Headers pentru cap de tabel*/
char *headers(FILE * f)
{
char *buffer;
char *capete;
int size = 20;
capete = malloc(size);
int i, a = 0, p = 0, g = 0;
int lg;
buffer = malloc(1024);
while (1) {
fgets(buffer, 1024, f);
lg = strlen(buffer);
for (i = 0; i < lg; i++) {
if (buffer[i] == ',')
a++;
if (buffer[i] == '}')
return capete;
else if (buffer[i] == ':')
p++;
/* Daca sunt in zona din stanga celor: */
if (a == p) {
if (buffer[i] == '\"') {
g++;
if (g % 2 == 0) {
printf(",");
}
} else if (g % 2 == 1) {
printf("%c", buffer[i]);
}
}
}
}
return capete;
}
/* Corp pentru interiorul codului */
void corp(FILE * f)
{
char *buffer;
/*a nr de virgule, g nr de : */
int i, a = 0, p = 0, g = 0;
int lg;
buffer = malloc(1024);
while ((fgets(buffer, 1024, f)) != NULL) {
lg = strlen(buffer);
for (i = 0; i < lg; i++) {
if (buffer[i] == ',') {
a++;
}
if (buffer[i] == ':') {
i++;
p++;
}
/* Daca sunt in zona din dreapta celor : */
if (a < p) {
if (buffer[i] == '}')
printf("\n");
if (buffer[i] == '\"') {
g++;
if (g % 2 == 0)
printf(",");
}
if (g % 2 == 1 && buffer[i] != '\"') {
printf("%c", buffer[i]);
}
if (buffer[i] >= 48 && buffer[i] <= 57
&& g % 2 == 0) {
printf("%c", buffer[i]);
if (buffer[i + 1] < 48
|| buffer[i + 1] > 57)
printf(",");
}
}
}
}
}
int main()
{
char *capete;
FILE *f;
/* Deschide fisier */
f = fopen("convertor.in", "r");
/* Redirect output catre fisier */
freopen("convertor.out", "w", stdout);
capete = headers(f);
fseek(f, 0, SEEK_SET);
printf("%s\n", capete);
corp(f);
fclose(f);
return 0;
}