J'ai un erreur que je ne comprend pas,lorsque j'essaye de parcourir un
fichier texte.
Voici le code:
fseek( fichier, 0, SEEK_SET);
while (fgets(dest, sizeof(dest), fichier)!=NULL)
{
syslog_write(U_INF,"Trap 3:%s", dest);
if (strcmp(dest,ipdest) == 0)
{
syslog_write(U_INF,"OK");
}
else
{
syslog_write(U_INF, "No rules for :%s",ipdest);
}
}
Voici le fichier texte:
toto
10.1.23.2
10.1.1.1
10.2.26.23
etc ...
Et mon résultat
Fred Trap 2 dest:10.2.26.23
Trap 3:10.1.23.2
No rules for :10.1.23.2
Trap 3:10.1.1.1
No rules for :10.1.1.1
Trap 3:10.2.26.23
No rules for :10.2.26.23
Etc ...
Je me demande pourquoi je ne rentre pas dans ma boucle if, en effet même
si dest==ipdest
je me retrouve dans else
Merci d'avance
--
Posté via http://www.webatou.net/
Usenet dans votre navigateur !
Complaints-To: abuse@webatou.net
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Charlie Gordon
"Frederic-B" wrote in message news:
J'ai un erreur que je ne comprend pas,lorsque j'essaye de parcourir un fichier texte.
Voici le code: fseek( fichier, 0, SEEK_SET); while (fgets(dest, sizeof(dest), fichier)!=NULL)
fgets() lit une ligne du fichier dans dest, jusqu'à et y compris le n final. tu ne l'enlèves pas de dest. donc si tu compares à une "10.1.23.2" c'est pas identique.
en fait ce serait plus sur de supprimer les blancs (isspace()) en debut et fin de ligne :
char *p, *q; for (p = dest; isspace(*p); p++) continue; for (q = dest + strlen(dest); q > dest && isspace(q[-1]); q--) continue; memmove(dest, p, q - p); dest[q - p] = ' ';
ce code devrait d'ailleurs faire l'objet d'une fonction char *trimspaces(char *s) qui pourrait servir ailleurs.
-- Chqrlie.
"Frederic-B" <pasdespam-stealth@altern.org> wrote in message
news:315nj8F37baujU1@individual.net...
J'ai un erreur que je ne comprend pas,lorsque j'essaye de parcourir un
fichier texte.
Voici le code:
fseek( fichier, 0, SEEK_SET);
while (fgets(dest, sizeof(dest), fichier)!=NULL)
fgets() lit une ligne du fichier dans dest, jusqu'à et y compris le n final.
tu ne l'enlèves pas de dest.
donc si tu compares à une "10.1.23.2" c'est pas identique.
en fait ce serait plus sur de supprimer les blancs (isspace()) en debut et fin
de ligne :
char *p, *q;
for (p = dest; isspace(*p); p++)
continue;
for (q = dest + strlen(dest); q > dest && isspace(q[-1]); q--)
continue;
memmove(dest, p, q - p);
dest[q - p] = ' ';
ce code devrait d'ailleurs faire l'objet d'une fonction char *trimspaces(char
*s) qui pourrait servir ailleurs.
J'ai un erreur que je ne comprend pas,lorsque j'essaye de parcourir un fichier texte.
Voici le code: fseek( fichier, 0, SEEK_SET); while (fgets(dest, sizeof(dest), fichier)!=NULL)
fgets() lit une ligne du fichier dans dest, jusqu'à et y compris le n final. tu ne l'enlèves pas de dest. donc si tu compares à une "10.1.23.2" c'est pas identique.
en fait ce serait plus sur de supprimer les blancs (isspace()) en debut et fin de ligne :
char *p, *q; for (p = dest; isspace(*p); p++) continue; for (q = dest + strlen(dest); q > dest && isspace(q[-1]); q--) continue; memmove(dest, p, q - p); dest[q - p] = ' ';
ce code devrait d'ailleurs faire l'objet d'une fonction char *trimspaces(char *s) qui pourrait servir ailleurs.