mateus8 Posted June 1, 2013 at 03:14 PM Report #510419 Posted June 1, 2013 at 03:14 PM (edited) Boa tarde eu tou a tentar separar a data pela função strtok mas estou com erros STRING *Read_Split_Line(char *LT, int n_campos_max, int *n_campos_lidos, char *separadores) { *n_campos_lidos = 0; STRING *Res = (STRING *)malloc(n_campos_max*sizeof(STRING)); char *pch = strtok (LT, separadores); int cont = 0; while (pch != NULL) { Res[cont] = (char *)malloc((strlen(pch)+1)*sizeof(char)); strcpy(Res[cont++], pch); pch = strtok (NULL, separadores); // erro aqui } *n_campos_lidos = cont; return Res; }; void conversaodat(char *d1,struct tm *cv) { int n_campos_d1 = 0; STRING *S = Read_Split_Line(d1, 7, &n_campos_d1, "\n -."); printf("\n Leu"); for (int i = 0; i < n_campos_d1; i++) printf("so[%d] = [%s] \n", i, S[i]); cv->tm_mday=atoi(S[0]); cv->tm_mon=atoi(S[1]); cv->tm_year=atoi(S[2]); cv->tm_hour=atoi(S[3]); cv->tm_min=atoi(S[4]); cv->tm_sec=atoi(S[5]); // falta por os milisegundos free(cv); } Atentamente mateus Edited June 1, 2013 at 07:04 PM by pmg GeSHi
HappyHippyHippo Posted June 2, 2013 at 03:23 AM Report #510518 Posted June 2, 2013 at 03:23 AM e os erros são ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
mateus8 Posted June 3, 2013 at 12:08 PM Author Report #510673 Posted June 3, 2013 at 12:08 PM Diz que da erro ao ler os caracteres da string o que faz com que a data nao entre. Porque eu preciso de separar as datas para depois fazer o datediff que é para me dar o tempo para fazer a velocidade média Obrigado HappyHippyHippo
HappyHippyHippo Posted June 3, 2013 at 04:44 PM Report #510725 Posted June 3, 2013 at 04:44 PM faz copy paste do erro que aparece ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
mateus8 Posted June 3, 2013 at 10:11 PM Author Report #510787 Posted June 3, 2013 at 10:11 PM 0x5006b560 {0xcdcdcdcd <Error reading characters of string.>} e nos campos lidos da me 0x003afad0{0} O que me parece é que não lê nada e não entendo o porque. É que eu queria partir todas as datas de uma lista com 3 milhoes de data que é para fazer a diferença do tempo para calcular a velocidade media. Antentamente Mateus
HappyHippyHippo Posted June 4, 2013 at 07:19 AM Report #510810 Posted June 4, 2013 at 07:19 AM pelo código desconfio que problema seja : STRING *Read_Split_Line(char *LT, int n_campos_max, int *n_campos_lidos, char *separadores) { *n_campos_lidos = 0; STRING *Res = malloc(n_campos_max * sizeof(STRING)); // <--- o número de substrings é maior que o alocado o que dará uma sério de acessos inválidos a memória IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
mateus8 Posted June 4, 2013 at 04:59 PM Author Report #511002 Posted June 4, 2013 at 04:59 PM obrigado happyhippyhippo já consegui mais uma obrigado pela ajuda e de estarem sempre disponíveis .
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now