geral
02-06-2007, 19:47
Amigos,
Venho de começar na programação só que tenho que entregar um projecto que lesse ficheiros logs de maquinas url registados e guardados em memoria será que posso usar este programa para tentar fazer esse.
por favor ajudem me não sei como hei de de começar
#include <stdio.h>
#include <iostream>
#include <string.h>
#define N 4
#define NANOS 9
char validarprot (char* p)
{
char gen[][6]={"http","ftp","https","rtsp","HTTP","FTP","HTTPS","RTSP"};
int n;
for (n=0;n<8;n++)
if (strcmp (p,gen[n]) == 0)
{
return ('v');
}
}
char str1[150],prot[150],maq[150],dom[150];
char *p1,*p2;
int ano[N],mes[N],dia[N],hora[N],min[N],seg[N],i;
char bra,url[100];
int year, nrecano[NANOS];
main()
{
FILE * pPaz;
pPaz = fopen ("log.txt","r");
printf("Insira o url\n\n");
scanf ("%s", &str1);
// strcpy(str1,"http://www.google.com/");
p1=strstr (str1-1, "");
p2=strstr (p1+1, ":");
strncpy (prot, p1+1, p2-(p1+1));
prot[p2-(p1+1)]='\0';
printf("\nProtocolo: [%s]\n\n", prot);
p1=strstr (str1, "/");
p2=strstr (p1+2, "/");
strncpy (maq, p1+2, p2-(p1+2));
maq[p2-(p1+2)]='\0';
printf("\nMaquina: [%s]\n\n", maq);
p1=strstr (maq, ".");
if (p1!= NULL)
{
strcpy(dom,p1+1);
}
printf("\nDominio: [%s]\n\n", dom);
if ((validarprot(prot)== 'v'))
printf("\nProtocolo VALIDO\n\n");
else
printf("\nProtocolo INVALIDO\n\n");
system("pause");
for(i=0;i<NANOS;i++)
{
nrecano[i]=0;
}
printf("\nOs ficheiros lidos do log sao:\n");
for (i=0; i<N; i++)
{
fscanf(pPaz, "%c %d-%d-%d %d:%d:%d %c%s\n" ,&bra, &ano[i], &mes[i], &dia[i], &hora[i], &min[i], &seg[i], &bra, &url);
printf ("\n\nAno: [%d] Mes: [%d] Dia: [%d]\n\nHora: [%d:%d:%d]\n\nUrl: [%s]\n\n\n\n",ano[i], mes[i], dia[i], hora[i], min[i], seg[i], url);
system("pause");
for(year=2000;year<2009;year++)
{
if(year==ano[i])
{
nrecano[year-2000]++;
}
}
}
for(year=2000;year<2009;year++)
{
printf("Ano=%d, num=%d\n",year,nrecano[year-2000]);
fclose (pPaz);
}
system ("pause");
}
Venho de começar na programação só que tenho que entregar um projecto que lesse ficheiros logs de maquinas url registados e guardados em memoria será que posso usar este programa para tentar fazer esse.
por favor ajudem me não sei como hei de de começar
#include <stdio.h>
#include <iostream>
#include <string.h>
#define N 4
#define NANOS 9
char validarprot (char* p)
{
char gen[][6]={"http","ftp","https","rtsp","HTTP","FTP","HTTPS","RTSP"};
int n;
for (n=0;n<8;n++)
if (strcmp (p,gen[n]) == 0)
{
return ('v');
}
}
char str1[150],prot[150],maq[150],dom[150];
char *p1,*p2;
int ano[N],mes[N],dia[N],hora[N],min[N],seg[N],i;
char bra,url[100];
int year, nrecano[NANOS];
main()
{
FILE * pPaz;
pPaz = fopen ("log.txt","r");
printf("Insira o url\n\n");
scanf ("%s", &str1);
// strcpy(str1,"http://www.google.com/");
p1=strstr (str1-1, "");
p2=strstr (p1+1, ":");
strncpy (prot, p1+1, p2-(p1+1));
prot[p2-(p1+1)]='\0';
printf("\nProtocolo: [%s]\n\n", prot);
p1=strstr (str1, "/");
p2=strstr (p1+2, "/");
strncpy (maq, p1+2, p2-(p1+2));
maq[p2-(p1+2)]='\0';
printf("\nMaquina: [%s]\n\n", maq);
p1=strstr (maq, ".");
if (p1!= NULL)
{
strcpy(dom,p1+1);
}
printf("\nDominio: [%s]\n\n", dom);
if ((validarprot(prot)== 'v'))
printf("\nProtocolo VALIDO\n\n");
else
printf("\nProtocolo INVALIDO\n\n");
system("pause");
for(i=0;i<NANOS;i++)
{
nrecano[i]=0;
}
printf("\nOs ficheiros lidos do log sao:\n");
for (i=0; i<N; i++)
{
fscanf(pPaz, "%c %d-%d-%d %d:%d:%d %c%s\n" ,&bra, &ano[i], &mes[i], &dia[i], &hora[i], &min[i], &seg[i], &bra, &url);
printf ("\n\nAno: [%d] Mes: [%d] Dia: [%d]\n\nHora: [%d:%d:%d]\n\nUrl: [%s]\n\n\n\n",ano[i], mes[i], dia[i], hora[i], min[i], seg[i], url);
system("pause");
for(year=2000;year<2009;year++)
{
if(year==ano[i])
{
nrecano[year-2000]++;
}
}
}
for(year=2000;year<2009;year++)
{
printf("Ano=%d, num=%d\n",year,nrecano[year-2000]);
fclose (pPaz);
}
system ("pause");
}