Strtok problem
Fermé
emmy_2019
Messages postés
59
Date d'inscription
mardi 23 avril 2019
Statut
Membre
Dernière intervention
16 septembre 2019
-
25 juin 2019 à 12:07
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 25 juin 2019 à 14:57
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 25 juin 2019 à 14:57
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 25 juin 2019 à 14:23
Modifié le 25 juin 2019 à 14:23
Salut emmy_2019,
Ce n'est pas comme cela que l'on se sert de
http://www.cplusplus.com/reference/cstring/strtok/
et je ne l'utiliserai pas personnellement dans ton cas.
Il te suffit d'utiliser
Voilà un exemple :
qui donne :
Sinon, pour parser un fichier .ini, il y a cette fonction dédiée de l'API Windows, qui est en legacy car elle était utilisée par les systèmes 16 bits avant l'apparition du registre Windows.
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestring
Si elle existe sur ton WinCE, tu devrais sans doutes l’utiliser.
Dal
Ce n'est pas comme cela que l'on se sert de
strtok():
http://www.cplusplus.com/reference/cstring/strtok/
et je ne l'utiliserai pas personnellement dans ton cas.
Il te suffit d'utiliser
strstr(), qui va renvoyer le pointeur vers l'endroit où se trouve la sous-chaîne qui correspond à ta recherche et d'y ajouter la longueur de ta sous-chaîne pour te positionner au char suivant.
Voilà un exemple :
#include <stdio.h> #include <string.h> int main(void) { char * st = "Adrr_CALC=192.168.0.95"; char * found = NULL; if ((found = strstr(st, "Adrr_CALC="))) { found = found + strlen("Adrr_CALC="); printf("value is: %s\n", found); } return 0; }
qui donne :
$ gcc -Wall 36090951.c $ ./a.out value is: 192.168.0.95
Sinon, pour parser un fichier .ini, il y a cette fonction dédiée de l'API Windows, qui est en legacy car elle était utilisée par les systèmes 16 bits avant l'apparition du registre Windows.
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestring
Si elle existe sur ton WinCE, tu devrais sans doutes l’utiliser.
Dal
25 juin 2019 à 14:34
malheureusement cela n'existait pas sur WinCe 6.0 j'ai eu une erreur fonction non définie
25 juin 2019 à 14:43
As-tu une idée pour enlever tout chariot stp?
25 juin 2019 à 14:57
Dans ton cas, vu que tes données viennent d'un fichier, tu auras des retours à la ligne dans les données lues par .
Si tu n'en veux pas, tu peux les supprimer en en cherchant l'existence avec et en terminant la chaîne à cet endroit.
Cela donne ceci dans mon code d'exemple :