#21 Hanule
Ty někde vidíš že bych použil funkci strtok() ? csvstrtok(), která je tam použita, je její náhrada, je tam její kompletní definice.
O.
Ahoj, co takhle ?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char vals[250][250];
char test[] = "1234;ab;5678;hovno;prdel;kameni";
char * csvstrtok(char *line, char sep)
{
static char *current;
char *start;
int quoted = 0;
if (line != NULL)
{
current = line;
}
start = current;
if (*current == '\0') return NULL;
while (*current != '\0' && ((*current != sep) || quoted))
{
if (*current == '"')
{
quoted = !quoted;
}
current++;
}
if (*current == sep)
{
*current = '\0';
current ++;
}
return (start);
}
int main(int argc, char *argv)
{
char *s;
int i;
int cnt = 0;
s = csvstrtok(test, ';');
while (s)
{
strcpy(vals[cnt++], s);
s = csvstrtok(NULL, ';');
}
for (i=0; i<cnt; i++)
printf("%d=%s\n", i, vals[i]);
system("pause");
return 0;
}
Ondra