Pagini recente » Cod sursa (job #1051171) | Cod sursa (job #1958126) | Cod sursa (job #46299) | Cod sursa (job #2047423) | Cod sursa (job #1361535)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
void nfprint(char *ptr, int len);
void solveKeys(FILE *pFile);
void solveValues(FILE *pFile);
int main(){
/* Open input file */
FILE *pFile = fopen("convertor.in", "rt");
/* Redirect output from stdout to convertor.out */
freopen("convertor.out", "wt", stdout);
assert (pFile != NULL);
solveKeys(pFile);
rewind(pFile);
solveValues(pFile);
fclose(pFile);
return 0;
}
void nfprint(char *ptr, int len){
int i;
for (i = 0; i < len; ++i)
printf("%c", ptr[i]);
printf(",");
}
void solveKeys(FILE *pFile){
char *ptr1, str[1025], aux[1025];
register short int i;
short int len, quote = 0, dots = 1;
do{
fgets(str, 1025, pFile);
len = strlen(str);
for(i = 0; i < len; ++i){
if(str[i] == ':'){
dots = 0;
quote = 0;
}
else if(str[i] == ','){
dots = 1;
quote = 0;
}
else if(str[i] == '}'){
len = -1;
break;
}
else if(str[i] == '"')
quote = (quote+1)%2;
if(dots){
if((quote) && (str[i] != '"')){
printf("%c", str[i]);
if (str[i+1] == '"')
printf(",");
}
}
}
}
while(len != -1);
printf("\n");
}
void solveValues(FILE *pFile){
char *ptr1, *ptr2, str[1025];
register short int i;
short int len, quote = 0, dots = 0;
do{
fgets(str, 1025, pFile);
len = strlen(str);
for(i = 0; i < len; ++i){
if(str[i] == ':'){
dots = 1;
quote = 0;
}
else if(str[i] == ','){
dots = 0;
quote = 0;
}
else if(str[i] == '}'){
dots = 0;
printf("\n");
}
else if(str[i] == '"')
quote = (quote+1)%2;
if(dots){
if((quote) && (str[i] != '"')){
printf("%c", str[i]);
if (str[i+1] == '"')
printf(",");
}
else if((str[i] >= 48) && (str[i] <= 57)){
printf("%c", str[i]);
if ( !((str[i+1] >= 48) && (str[i+1] <= 57)) )
printf(",");
}
}
}
}
while( !feof(pFile) );
}