ajuda por favor - C - Portugal-a-Programar
Por astrix, 31 de Maio de 2007 em C
amigos preisava da vossa ajuda para terminar um programa q tenho q entregar segunda -feira mas cheguei a um ponto q nao consigo acabar nem por a funcar o q ja fiz por isso precisava da vossa sabedoria por favor.vou deixar em anexo o q era para fazer e o q ja fiz
Aqui ninguem te poderá ajudar o programa é em C e estás na parte do Visual Basic.
O enunciado do trabalho diz que tem de ser realizado na linguagem C, alguma razão em especial por estares a utilizar C++?
Podem usar expressões regulares para fazer o parsing?
Pequeno exemplo de como fazer o parsing da URL:
Foi a primeira maneira que me veio à cabeça de fazer isto sem usar expressões regulares, não tem muito error handling mais deu para treinar string handling em C.
* http://en.wikipedia.org/wiki/URL
* http://en.wikipedia.org/wiki/URI_scheme
#define MAX_PROTOCOL 12
#define MAX_DOMAIN 255
#define MAX_URL 1024
#define MAX_QUERY 255
char PROTOCOLS[][MAX_PROTOCOL] = {"http", "ftp", "rtps", "https"};
char url[MAX_URL];
char protocol[MAX_PROTOCOL];
char domain[MAX_DOMAIN];
// TODO: case insentive comparison
int validateProtocol(char PROTOCOLS[][MAX_PROTOCOL], int SIZE, char protocol[MAX_PROTOCOL])
printf("%s %s\n", PROTOCOLS[i], protocol);
if(strcmp(protocol, PROTOCOLS[i]) == 0)
char urlstr[MAX_URL];
strcpy(urlstr, "http://www.example.com/index.php?foo=bar#anchor");
struct URL url;
strcpy(url.url, urlstr);
printf("URL: %s\n", url.url);
//http://triton.com.pt
char *ptr = strtok(urlstr, "://");
strcpy(url.protocol, ptr);
printf("protocol: %s\n", url.protocol);
if(strchr(url.url, '/') != NULL)
strcpy(url.domain, ptr);
printf("domain: %s\n", url.domain);
if(strchr(url.url, '?') != NULL)
ptr = strtok(NULL, "?");
strcpy(url.path, ptr);
printf("path: %s\n", url.path);
if(strchr(url.url, '#') != NULL)
ptr = strtok(NULL, "#");
strcpy(url.query, ptr);
printf("query: %s\n", url.query);
//printf("valid: %d\n", validateProtocol(PROTOCOLS, sizeof(PROTOCOLS)/sizeof(PROTOCOLS[0]), url.protocol));
amigo triton muito obrigado mesmo pela tua ajuda...mesmo muito obrigado...diz-me so uma coisa no q me fizeste esta tudo o q eu ja tinha feito mais o q me faltava fazer certo,so que de outra maneira e isso.agora se fore assim peçote so um pequeno ou grande favor nao sei,uma pequena explicaçao dele se nao fore pedir muito nem abusar da tua boa bontade claro, ou o q eu estava a fazer mal,isto porque eu tenho q o ir apresentar e para ter umas noçoes , para me preparar para o q ele me possa perguntar.mais uma vez e penso q nunca e demais pois e dificil encontrar pessoas como tu disposto a ajudar sem nada em troca um ganda abraço e o meu sincero agradecimento.espero um dia poder retribuir-te da mesma maneira
Eu não cheguei a analizar o teu código porque está uma autêntica confusão... tens de começar a identar o código para que se possa ler.
Quanto ao código que eu postei, não faz a parte 2 do trabalho, ou seja, a análise de logs. Agora o que eu te aconselhava a fazer era separar o meu código em funções para depois se tornar mais simples se quiseres adicionar a tal funcionalidade para analisar os logs a das URLs. O método do meu código é dividir a string em partes cada vez mais pequenas. Primeiro procura por "://" e divide a URL em duas partes, e assim sucessivamente.
ok amigo triton mas continuo na mesma situaçao q e faltame a 2 parte e como tenho q entregar na segunda feira estou tramado porque nao me estou a ver com capacidade para o acabar,por isso te podia essa ajuda para o acabar e eu vou tentar perceber o q esta feito no codigo pois ele vai fazer perguntas sobre ele e provabel q me pessa depois para acrescentar algo,senao fore pedir muito mais uma vez ajuda.me la.... :-[
astrix, já te dei um exemplo de como fazer. Como deves perceber não te vou fazer o trabalho todo. Faz o que eu te disse no outro post e começar a adicionar a funcionalidade da parte 2. Se tiveres dúvidas, estaremos cá para te ajudar.
amigo triton nao querendo estar a abusar da tua boa bontade,e assim eu nao estou nada a bontade com programaçao em c porque nas aulas faziamos em visualbasic6.0c++,e em casa ia dando um toques em c++ e agora como disseste e bem ele pede em c.entao nem sequer consigo por a correr o q me fizeste da-me um erro a compilar e nao o deixa correr,entao muito menos estou a consegui fazer a parte 2,por isso se me puderes ajudar em mais alguma coisa ficaria grato.o programa q saquei foi o dev c++ estando a utilizar a opçao em c e nao estou a conseguir fazer nenhum estive aqui toda a tarde e nada...o q estarei a fazer de errado... :wallbash:
Acabei de testar no Dev-C++ e não me deu erro a compilar. Quanto ao problema da consola que desaparece, podes usar um system("pause"); ou um getch();, ou então corres o programa pela consola.
Facilita imenso, se colocares logo o código. Em forma de anexo até passa despercebido à maioria do pessoal