Pagini recente » Cod sursa (job #1358550) | Cod sursa (job #2916497) | Cod sursa (job #1698160) | Cod sursa (job #899349) | Cod sursa (job #1354390)
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
int
main ()
{
char *token[80000];
char aux[1025];
FILE *citire;
FILE *afisare;
char c;
citire = fopen ("convertor.in", "r");
afisare = fopen ("convertor.out", "w");
unsigned int inreg = 0, poz = 0, inreg2 = 0;
unsigned long int s = 0, i,lungime = 1;
while (( = fgetc (citire)) != EOF)
{
if (c != '"')
{
if (inreg == 1)
{
aux[poz] = c;
poz++;
}
else if ((c <= '9' && c >= '0') || (c == '-'))
{
inreg2 = 1;
aux[poz] = c;
poz++;
}
else if (inreg2 == 1)
{
aux[poz] = '\0';
token[s] = strdup (aux);
s++;
inreg2 = 0;
}
}
else if (inreg == 0)
{
aux[poz] = '\0';
token[s] = strdup (aux);
inreg = 1;
poz = 0;
}
else
{
if (s % 2 == 0)
if (s != 0)
{
aux[poz] = '\0';
if (strcmp (token[0], aux) == 0)
{
lungime = s;
token[s] = strdup (aux);
for (i = 0; i < s; i = i + 2)
fprintf (afisare, "%s,", token[i]);
fprintf (afisare, "\n");
for (i = 1; i < s; i = i + 2)
fprintf (afisare, "%s,", token[i]);
fprintf (afisare, "\n");
s++;
poz = 0;
inreg = 0;
break;
}
}
aux[poz] = '\0';
token[s] = strdup (aux);
inreg = 0;
s++;
poz = 0;
}
}
while ((c = fgetc (citire)) != EOF)
{
if (c != '"')
{
if (inreg == 1)
{
if (s % 2 == 1)
{
fprintf (afisare, "%c", c);
}
}
else if ((c <= '9' && c >= '0') || (c == '-'))
{
inreg2 = 1;
fprintf (afisare, "%c", c);
}
else if (inreg2 == 1)
{
if (s % 2 == 1)
fprintf (afisare, ",");
if ((s + 1) % lungime == 0)
fprintf (afisare, "\n");
s++;
inreg2 = 0;
}
}
else
{
if (inreg == 0)
inreg = 1;
else
{
inreg = 0;
if (s % 2 == 1)
fprintf (afisare, ",");
if ((s + 1) % lungime == 0)
fprintf (afisare, "\n");
s++;
}
}
}
if (lungime == 1)
{
for (i = 0; i < s; i = i + 2)
fprintf (afisare, "%s,", token[i]);
fprintf (afisare, "\n");
for (i = 1; i < s; i = i + 2)
fprintf (afisare, "%s,", token[i]);
}
fclose (afisare);
return 0;
}