copie du contenu d'un fichier dans un tableau

copie du contenu d'un fichier dans un tableau - Programmation

Marsh Posté le 25-03-2002 à 16:57:44    

Comment faire pour copier certains éléments d'un fichier dans tableau ?  
Voilà un extrait du fichier access_log :  
193.249.12.70 - - [31/Dec/2000:22:26:14 +0500] "GET /precamp.html HTTP/1.1" 200 4775  
de ce fichier je voudrais mettre l'adresse IP, la date et le nom de la page HTML dans un tableau du type  
adresse_ip : date : nom_page  
et ça pour chaque ligne jusqu'à la fin du fichier

Reply

Marsh Posté le 25-03-2002 à 16:57:44   

Reply

Marsh Posté le 25-03-2002 à 17:27:32    

S'il vous plaît c'est URGENT

Reply

Marsh Posté le 25-03-2002 à 17:39:41    

Bah, tu peux essayer de découper ta ligne avec les caractères spéciaux qui s'y trouvent.
genre l'ip, faut faire une expression régulière, la date est entre [ ] et la page html entre " "...
C dans quel langage qu'il faut que tu le fasses?

Reply

Marsh Posté le 25-03-2002 à 19:44:00    

dropsy a écrit a écrit :

Bah, tu peux essayer de découper ta ligne avec les caractères spéciaux qui s'y trouvent.
genre l'ip, faut faire une expression régulière, la date est entre [ ] et la page html entre " "...
C dans quel langage qu'il faut que tu le fasses?  




en langage C ou C++ au choix
mais je suis pas très copain avec les classes et la programmation objet

Reply

Marsh Posté le 25-03-2002 à 19:49:52    

dans les fichiers logs le séparateur est l'espace :jap:


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 25-03-2002 à 23:01:43    

solution = sscanf() !!!
 
sscanf("%d.%d.%d.%d - - [%d/%s/%d:%d:%d:%d +%d] "%s...",n°ip1,n°ip2,...);
tu découpes, en fait, la phrase en données que tu mets ensuite dans des variables

Reply

Marsh Posté le 25-03-2002 à 23:03:55    

un peu plus : tu lis chaque ligne de ton fichier avec fgets et tu mets ça dans un buffer[200]; Puis, tu découpes le buffer avec sscanf.
voir http://www.lri.fr/~aze/page_c/aide_c/sscanf.html

Reply

Marsh Posté le 26-03-2002 à 09:31:04    

torpe23 a écrit a écrit :

un peu plus : tu lis chaque ligne de ton fichier avec fgets et tu mets ça dans un buffer[200]; Puis, tu découpes le buffer avec sscanf.
voir http://www.lri.fr/~aze/page_c/aide_c/sscanf.html  




Ah cool merci  
 :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce:

Reply

Marsh Posté le 26-03-2002 à 10:48:34    

ça marche super bien je te remercie infiniment !!!!
 :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  
 
Finalement avec ça mon prjoet c de la rigolade  :lol:

Reply

Marsh Posté le 26-03-2002 à 15:36:53    

OUPS OUPS OUPS je crois que j'ai crié victoire un peu top vite car pour l'adresse ip ça marche top la date aussi mais pour l'heure et le reste ça marche pas top
voilà ce que j'ai mis :
#include <stdio.h>
void  main(void) {
char tamp[] ="193.249.12.70 - - [31/Dec/2000:22:26:14 +0500] GET /precamp.html HTTP/1.1 200 4775";
int a,b,c,d,e,f,g,h,i,j,k,l;
char date[12],debut[30],fin[100];
flushall();
sscanf( tamp,"%d.%d.%d.%d - - [%d/%s/%d:%d:%d:%d +%d] GET %s %s %d %d",&a ,&b ,&c ,&d ,&e , debut, &f, &g, &h, &i , &j, date, fin, &k, &l);
printf("Resultat : %d\n%d\n%d\n%d\n%d\n%s\n%d\n%d\n%d\n%d\n
%d\n%s\n%s\n%d\n%d\n",a,b,c,d,e,debut,f,g,h,
i,j,date,fin,k,l);
}
 
 
et voilà c que ça donne
http://www.chez.com/jmweb/result.jpg
Merci de ton aide  
c'est assez urgent

Reply

Marsh Posté le 26-03-2002 à 15:36:53   

Reply

Marsh Posté le 26-03-2002 à 17:13:59    

Personne n'a d'idées ???
C'est super urgent !!!!  
 :cry:  :cry:  :cry:

Reply

Marsh Posté le 29-03-2002 à 15:52:32    

toujours personne ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed