Probleme avec une structure ... [C] - C++ - Programmation
Marsh Posté le 19-01-2003 à 17:31:10
Oui mais le probleme est pour saisir cette partie par exemple qui est au milieu d'autre données.
Code :
|
Marsh Posté le 19-01-2003 à 18:21:46
Ben une fois que t'as lu ta date, tu fscanf jusqu'à retrouver un caractère ", j'vois pas trop où est le prob
Marsh Posté le 19-01-2003 à 21:46:04
FabienM a écrit : Oui mais le probleme est pour saisir cette partie par exemple qui est au milieu d'autre données.
|
ba en matter ce que tu as filer plus haut ca a pas l'air tres compiquer si ton fichier est organiser en ligne c a dire une ligne =
Citation : 212.83.187.188 - - [01/Apr/2001:00:08:47 +0200] "GET /~luke/archi/message.html HTTP/1.1" 200 3519 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000; DigExt)" |
donc tu fais une lecture dans un tableau ( pour le ligne a ligne tu fais fgets ou si tu connais la taille de chaque ligne voir l'ami fread) ensuite tu as ca dans un tableau tu analyse des que tu trouve le premier : " tu stock la chaine juska trouver le prochain " et la tu aurais dans un autre tableau la chaine souhaiter
Marsh Posté le 23-01-2003 à 03:36:50
Faciiile !
Code :
|
Avec ça, tu devrais pouvoir affiner les détails.
Sinon, montres la définition de la structure que tu veux remplir.
Si les largeurs sont immuables, on peut aussi jouer du fgets, strchr, strstr, memcpy et '\0'.
Marsh Posté le 24-01-2003 à 19:28:46
Bah en faite la structure sera de la forme suivante:
Code :
|
J'vais reflechir sur ce ke tu m'a donnée...
Merci!
Marsh Posté le 25-01-2003 à 00:37:47
Ça pourrait être comme ça:
Code :
|
Ce découpage est possible car le compilateur joint les chaînes littérales adjacentes.
Les nombres dans le format sont optionnels, ils permettent d'éviter les débordements.
L'alternative "%c" lit exactement le nombre demandé, sans ajouter '\0'.
Marsh Posté le 28-01-2003 à 15:45:23
Merci mais j'ai reussi à modifier la structure comme j'en ai besoin.
Le probleme qui se pose maintenant, est pour saisir plusieur ligne ds le fichier, car j'ai inseré la commande fscanf ds une boucle while mais sans succes... pas moyen de saisir plusieur ligne...
Comment pourrais-je faire ?? j'ai pensé stocker tous le contenu ds un tableau de structure afin de pouvoir les retraiteés par la suite...mais je ne sais pas trop comment m'y prendre.
Marsh Posté le 29-01-2003 à 00:39:08
Je vois pas trop le problème...
Code :
|
Marsh Posté le 29-01-2003 à 21:07:46
euh, tu pourrais commencer par un tableau de string que tu remplis à coups de fgets,
puis tu attaques ces lignes une à une en memoire à coups de sscanf...
Marsh Posté le 29-01-2003 à 21:16:40
Angel_Eyes a écrit : euh, tu pourrais commencer par un tableau de string que tu remplis à coups de fgets, |
si les E/S déjà bufferisées ralentissent vraiment ton programme (voir ton profiler et le temps system (ca existe ca sous windows)), tu peux effectivement envisager mapper ton fichier en mémoire si ton log fait 80mo.
mais dans le cas de ce problème, comme le traitement est fait ligne par ligne et que je ne connais pas de fonctions capables de lire plusieurs lignes en un seul appel systeme, il faut faire confiance au buffer des FILE* et a ton systeme, et continuer comme tu fait.
Marsh Posté le 18-01-2003 à 21:27:02
J'ai un fichier qui contient ce type de données:
J'ai besoin de les traiter, et pour cela je pense utiliser une structure de la façon suivante:
pour stoker l'IP, la date, l'heure, et la page consultée.
Comment faut-il faire pour stoker l'IP ki est au debut du fichier dans la structure, la date ki se triuve dans le milieu du fichier et ainsi de suite ??
MERCI - le tout uniquement en C.
Message édité par FabienM le 19-01-2003 à 11:08:08