begin process at 2008 08 20 14:14:30
1 228 866 membres
232 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Projet Langage C Help! [ Archives / Au secours ] (Sneakito)

Projet Langage C Help! le 28/05/2005 02:55:54

Sneakito
Voilà pour lundi prochain je dois rendre un projet en C, le sujet que j'ai choisi est le suivant:
-Recherche un mot dans une page HTML (hors balise) et le mettre en évidence (gras, rouge,?)

Cela semblera très simple à certains, mais mes connaissances en C sont très basiques et mon dernier cours remontre à très loin(l'année dernière), je ne me souviens plus de grand choses.

Je remercie d'avance, ceux qui pourront m'aider.

Re : Projet Langage C Help! le 28/05/2005 09:47:39

simtiers
Alors, pour la méthode, je dirais ceci :

- ouvrir le fichier avec un FILE* f = fopen(...)
- récupérer la taille du fichier
- charger tout le fichier en memoire (plus simple)
- faire un char* c = strstr(...) pour trouver le mot (attention, sensible à la casse)
(garde le pointeur retourné par cette fonction => position du mot)
- créer une nouvelle chaine, copier ce qu'il y a avant le mot dans cette chaîne, (strcpy), puis ajouter la balise HTML : strcat( chaine2, "<strong>" );, ajouter le mot recherché, la fin de la balise HTML, puis copier la fin du fichier : strcat( chaine2, c+strlen(MotRecherche) );
- écrire le tout dans un fichier (fwrite....)
- faire le fichier (fclose)

Maintenant, le mot recherché (1ere apparition) est affiché en gras

Re : Projet Langage C Help! le 28/05/2005 11:59:38

Sneakito

Je te remercie mais je malheuresement je ne comprends pas tout à ce que tu m'as mis, j'espere mieux m'y retrouver apres avoir lu un bon didactiel.

Re : Projet Langage C Help! le 30/05/2005 19:06:40

Sneakito

Un ami de la famille qui s'y connait un peu en informatique, a écrit ça:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    //ouverture de fichier en lecture
  FILE *file = fopen("pagehtml.txt","r");
  char buffer[1000];
  if (file == NULL) {
    fprintf(stderr,"Erreur dans l'ouverture du fichier");
    exit(-1);
  }
  
   sprintf(buffer, "%s","pagehtml.txt");
   //fermeture du fichier
  fclose(file);
   //lecture à parti du buffer
   //Demander le mot à rechercher
   char tmp[30];
   char *mot;
   do {
   printf( "Rechercher :" );
    gets( tmp );
   } while ( (sscanf(tmp, "%s",mot)!=1));
    sprintf(tmp, "%s", mot);
    puts(tmp);
    //recherche du mot tapé dans le buffer
    //utiliser while avec getchar et strcmp pour la comparaison avec mot

  //system("PAUSE"); 
  return 0;
}

Mais c'est incomplet!Vous pouvez m'aider SVP.


Re : Projet Langage C Help! le 30/05/2005 19:07:32

Sneakito
J'ai ai oublié de dire que j'y ai apporté quelques minimes modifications.

Re : Projet Langage C Help! le 30/05/2005 19:24:45

simtiers
Oulah, grosse erreur :
sprintf(buffer, "%s","pagehtml.txt");

Tu ne copies pas le contenu du fichier, mais son nom !
à écrire :
fread( &buffer, sizeof(char), sizeof(buffer), file );

Pour la recherche, utilise la fonction une première fois
char* position_dans_buffer = strstr( buffer, mot );
puis :
position_dans_buffer = strstr( position_dans_buffer, mot );

Pense à verifier que (position_dans_buffer != NULL)
Si (position_dans_buffer==NULL), tu peux quitter ta boucle.

Ici, à chaque itération, position_dans_buffer pointe sur le début du mot à rechercher.


Classé sous : help, projet, langage

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS