Besoin d'aide

Besoin d'aide - Programmation

Marsh Posté le 26-12-2001 à 17:37:56    

http://multimania.com/nexo1111/devoirIndex.html
 
j'arrive a rien :( ca marche pas ,ca copie n'importe quoi ;(

Reply

Marsh Posté le 26-12-2001 à 17:37:56   

Reply

Marsh Posté le 26-12-2001 à 17:46:45    

c bien un devoir que tu as a rendre?
ta deja fais qq chose?


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 26-12-2001 à 17:55:19    

//biblioteques n?cessaire a l'execution du programme
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <conio.h>
#include <alloc.h>
 
//tableaux
#define max 100
typedef int tableau[max];
 
//************************************************
***********************
//********************* Fonctions utilis?es *****************************
//************************************************
***********************
 
int erreur(char *msg) //fonction erreur au cas ou l'execution se passe mal
{
printf("ERREUR!!! : %s\n",msg); //affichage du message d'erreur
getchar();//on attend une saisit au clavier pour sortir
exit(1); //on termine l'execution du programme
return 0;
}
//***********************************************************************
 
 
int balises() //fonction de creation des balises
{
char *dtete;        //pointeur pour les balises HTML
char *titre;
char *dbody;
 
char *br;
 
 FILE *html;
 html = fopen("Devoir.htm","w+" );
 
 strcpy(dtete,"<html>" );     //balises HTML
 strcpy(titre,"<head><title> Devoir GTR1 Cree par Nexo </title></head>" );
 strcpy(dbody,"<body>" );
 strcpy(br,"<BR>" );  //saut de paragraphe
 
 
 fwrite(dtete,6,1,html);  //structure du fichier .HTML
 fwrite(titre,strlen(titre),1,html);
 fwrite(dbody,6,1,html);
 fclose(html);
 free(dbody);            //liberation de la memoire
 free(dtete);
 free(titre);
 free(br);
 
 
return 0;
}
 
//***********************************************************************
 
int finbal() //fonction de fin du fichier
{
char *fbody;
char *ftete;
 
 FILE *fhtml;
 fhtml = fopen("Devoir.htm","a+" );
 
 strcpy(fbody,"<\body>" );
 strcpy(ftete,"<\html>" );
 
 fwrite(fbody,7,1,fhtml);
 fwrite(ftete,7,1,fhtml);
 
 fclose(fhtml);
 
 free(ftete);             //liberation de la memoire
 free(fbody);
return 0;
}
 
//***********************************************************************
int car() //on copie le cartouche dans le fichier html
{
char cart[100]; //tableau de longeur 100
char *texte[max];
int i=0; //servira pour la boucle
 
 FILE *fichier; //pointeur sur une structure de type fichier
 fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule
 FILE *html;
 html = fopen("Devoir.htm","w+" );
 
 
  if(!fichier)//erreur si le fichier n'est pas l?
  {
  erreur("Le fichier Matrices.c manque" );
  }
 
 {
 fseek(fichier,0, SEEK_SET);
 fgets(cart,'\n',fichier);
 fprintf(html,"%s",cart);
 
 fclose(fichier);
 fclose(html);
 }
 free(cart);
 
 
return 0;
}
 
 
 
//************************************************
***********************
//*********************  Procedure Principale ***************************
//************************************************
***********************
 
 
void main()  //procedure principale
{
 
 clrscr();//on efface l'ecran sous DOS
 
  //balises(); //appelle dela fonction balises
 car();
 // finbal();
}
 
//************************************************
***********************
 
 
 
J'ai essaye de faire copie la premiere ligne de l'entet dans le fichier html mais ca marche pas :(

Reply

Marsh Posté le 26-12-2001 à 20:01:09    

bon alors j'ai juste regardé ta fonction car et y a qq truc qui vont pas, en dehors du fait que tu cole des comentaire C++ dans un proframme C mais bon :), j'ai mis en comentaire les modifications que j'ai faite
 
 
int car() /*on copie le cartouche dans le fichier html */
{  
char cart[100]; /*tableau de longeur 100 */
char *texte[max];
FILE *fichier,*html; /* En C on peut pas déclarer les variables en plein milieu d'un bloc*/
int i=0; /*servira pour la boucle  
 
fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule  
 
 if(!fichier)/*erreur si le fichier n'est pas l? */
 {  
    erreur("Le fichier Matrices.c manque" );  
 }  
 else
 {  
    html = fopen("Devoir.htm","w+" );
    /*fseek(fichier,0, SEEK_SET); inutile*/
    fgets(cart,100,fichier); /*C la taille de cart qu'il faut mettre ici*/
    fprintf(html,"%s",cart);  
 
    fclose(fichier);  
    fclose(html);  
 }  
/* free(cart); SURTOUT PAS DE FREE C'EST UNE VARIABLE STATIQUE*/
 
 
return 0;  
}

Reply

Marsh Posté le 26-12-2001 à 21:02:48    

merci ca m'aide beacoup,la copie est bonne là :)
reste plus qu'a faire une boucle :)

Reply

Marsh Posté le 26-12-2001 à 23:42:27    

J'ai jeté un autre coup d'oeuil au reste, heu vous avez eu des cours de programmation avant qu'on vous donne ce devoir?
 
quand tu déclare un char * et que tu veux l'utiliser comme zone de stockage, faut pas oublier d'allouer la mémoirequi va avec:
 
char *buffer=(char*)malloc(sizeof(char)*30));/*voici un tableau de 30 charactères dont l'espace mémoire a été alloué dynamiquement, c la meme chose que char buffer[30], sauf que tu peux metre une variable dnas le premier cas, du style: char *buffer=(char*)malloc(sizeof(char)*i));*/

Reply

Marsh Posté le 27-12-2001 à 01:19:07    

nop jamais de cours ,on a que des tp de merde ou on doit se de*** tout seul        
 
En cours c que de l'algo jamais de C :(
 
Donc j'essais de me debrouiller comme je peux :(

Reply

Marsh Posté le 27-12-2001 à 12:55:20    

Un conseil: achéte toi un bon bouquin, ça te servira toujours ;)

Reply

Marsh Posté le 27-12-2001 à 12:58:32    

Un conseil: change de prof ou d'ecole :D


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 27-12-2001 à 13:10:32    

deathsharp a écrit a écrit :

Un conseil: change de prof ou d'ecole :D  




 
aussi :D

Reply

Marsh Posté le 27-12-2001 à 13:10:32   

Reply

Marsh Posté le 27-12-2001 à 13:59:06    

Nexo a écrit a écrit :

nop jamais de cours ,on a que des tp de merde ou on doit se de*** tout seul        



Citation :

Le premier but est d'appliquer en langage C les notions déjà abordées,


 
hum vous avez l'air de vous contredire..
t'as ete aux cours au moins :D ?
 
LEGREG

 

[edtdd]--Message édité par legreg--[/edtdd]

Reply

Marsh Posté le 27-12-2001 à 14:24:43    

Mouah j'vais en  cours mais comme j'ai dit on fait que de l'algo pas de C en cours!!! Le c c seulement en tp
 
Bon une derniere question ,j'arrive pas a cree une boucle qui a partir de '/*' jusqu'a '/*' copie le contenu dans une chaine toto
 
Ex ; /* Premiers essais de calculs sur matrices
   fichier créé le 6/11/2001
   pour les TP de langage C
   Département GTR, IUT de Blois
     */
Je veux commencer la saisit quand apres le /* et que la sasit ce termine apres le */
Pour le moment j'ai fait une boucle qui compte jusqu'a 4 et commencer apres le /* mais j'ai vu que ca conrepond pas au sujet
Il faut faire une boucle qui des que lit /* commence la saisit et se termine a */ et copie le contenu dans toto qui sera ensuite copie dans le fichier html
 
thx

Reply

Marsh Posté le 28-12-2001 à 20:25:37    

bon on va faire simple pour commencer:
 
FILE *source;
int c,fin,temp,i;
char buffer[1024];
 
if(source=fopen("nomFichier","r" ))
{
   
 c=fgetc(source);
 
 while(c != EOF)
 {
 
  if(c == '/' && fgetc(source) == '*';)
   {
       
     c=fgetc(source);
     fin=0;
     temp=0;
     i=0;
     while(c != EOF && !fin)
      {
         if(temp == '*' && c == '/';)
          {
            fin=1;
          }
         else
          {
             if(temp)
              {
                 bufer[i++]=temp;
                 temp=0;
              }
             if(c == '*';)
              {
                temp=c;
              }
             else
              {
                buffer[i++]=c;
              }
 
           }
         c=fgetc(source);
       }
     buffer[i]='\0';
    }
   c=fgetc(source);
 }
}

 

[edtdd]--Message édité par letoII--[/edtdd]

Reply

Marsh Posté le 28-12-2001 à 20:30:21    

Merci ,j'ai fait autrement moi pour faire la selection
 
int fonctiontri()
{
char cart[100]; //tableau de longeur 100
char *texte[max];
char *te[max];
char test[2];   //servira pour lire deux  carcateres en meme temps
char toto[]={"/*"};//tableau contenant '/*'
char titi[]={"*/"};//tableau contenant '*/'
int i=0; //servira pour le comptage dans la boucle
int ptr; //resultat de la comparaison test toto
int ptr2;//resultat de la comparaison test titi
 
 FILE *fichier; //pointeur sur une structure de type fichier
 fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule
 FILE *html;
 
 
 if(!fichier)//erreur si le fichier n'est pas l?
 {
 erreur("Le fichier Matrices.c manque" );
 }
 
 else
 {
  html=fopen("teste.htm","w+" );  //on ajoute a la fin du fichier
  fgets(test,3,fichier);
 
  ptr=strcmpi(test,toto); //on compare deux chaine
  if (ptr==0);  //si elles sont identiques on fait la boucle
  {
 fgets(cart,100,fichier);
 fprintf(html,"<H2> %s </H2>",cart);
 
  for(i=0;i<5000;i++)     //boucle s'arretant quand on a /*
  {
  te[i]=fgets(test,3,fichier);
  ptr2=strcmpi(test,titi);
   if(ptr2==0)
   {break;}
   else
   {
   texte[i]=fgets(cart,100,fichier);
   fprintf(html,"%s<br> ",texte[i]);
   }
  }
  }
 }
 
 fclose(fichier);
 fclose(html);
 
return 0;
}

Reply

Marsh Posté le 28-12-2001 à 20:42:19    

c pas que je veux être médisant, mais bon.... prend ma solution :)
ps: t sur que t'est allé au cours d'algo? :)

Reply

Marsh Posté le 28-12-2001 à 21:11:36    

ben j'ai compile ton truc ca me met des erreurs
 
if(source=fopen("fichier","r" )) =>Possible incorect insignement
 
voila
 
Ps: si malheuresemnt jv'ais vraiment en cours mais amphi c pas le top :(

Reply

Marsh Posté le 28-12-2001 à 21:19:10    

Pourtant ma belle fonction je l'avais fait avec amour ,j'arrive a copie l'en tete coorectemnt avec mon truc mais bon me reste du boulot
 
/************************************************************************
 
Devoir GTR 1 :"Generation d'un document en HTML"
Auteurs:
Date: Mars 2002
 
************************************************************************/
 
//biblioteques n?cessaire a l'execution du programme
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <conio.h>
#include <alloc.h>
 
//tableaux
#define max 100
typedef int tableau[max];
 
//************************************************
***********************
//********************* Fonctions utilis?es *****************************
//************************************************
***********************
 
int erreur(char *msg) //fonction erreur au cas ou l'execution se passe mal
{
printf("ERREUR!!! : %s\n",msg); //affichage du message d'erreur
getchar();//on attend une saisit au clavier pour sortir
exit(1); //on termine l'execution du programme
return 0;
}
//***********************************************************************
 
 
int ecriturebalisesdebut() //fonction de creation des balises
{
char *dtete;        //pointeur pour les balises HTML
char *titre;
char *dbody;
 
char *br;
 
 FILE *html;
 html = fopen("cartouc.htm","w+" );
 FILE *debut;
 debut= fopen("debut.htm","w+" );
 
 strcpy(dtete,"<html>" );     //balises HTML
 strcpy(titre,"<head><title> Devoir GTR1 Cree par N</title></head>" );
 strcpy(dbody,"<body>" );
 strcpy(br,"<BR>" );  //saut de paragraphe
 
 
 fwrite(dtete,6,1,html);  //structure du fichier .HTML
 fwrite(titre,strlen(titre),1,html);
 fwrite(dbody,6,1,html);
 
 fwrite(dtete,6,1,debut);  //structure du fichier .HTML
 fwrite(titre,strlen(titre),1,debut);
 fwrite(dbody,6,1,debut);
 
 fclose(html);
 fclose(debut);
 
return 0;
}
 
//***********************************************************************
 
int ecriturebalisefin() //fonction de fin du fichier
{
char *fbody;
char *ftete;
 
 FILE *html;
 html = fopen("cartouc.htm","a" );
 
 strcpy(fbody," <\body>" );
 strcpy(ftete," <\html>" );
 
 fwrite(fbody,7,1,html);
 fwrite(ftete,7,1,html);
 
 fclose(html);
 
return 0;
}
 
//***********************************************************************
int ecriturecartouche() //on copie le cartouche dans le fichier html
{
char cart[100]; //tableau de longeur 100
char *texte[max];
char *te[max];
char test[2];   //servira pour lire deux  carcateres en meme temps
char toto[]={"/*"};//tableau contenant '/*'
char titi[]={"*/"};//tableau contenant '*/'
int i=0; //servira pour le comptage dans la boucle
int ptr; //resultat de la comparaison test toto
int ptr2;//resultat de la comparaison test titi
 
 FILE *fichier; //pointeur sur une structure de type fichier
 fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule
 FILE *html;
 
 
 if(!fichier)//erreur si le fichier n'est pas l?
 {
 erreur("Le fichier Matrices.c manque" );
 }
 
 else
 {
  html=fopen("cartouc.htm","a+" );  //on ajoute a la fin du fichier
  fgets(test,3,fichier);
 
  ptr=strcmpi(test,toto); //on compare deux chaine
  if (ptr==0);  //si elles sont identiques on fait la boucle
  {
 fgets(cart,100,fichier);
 fprintf(html,"<H2> %s </H2>",cart);
 
  for(i=0;i<5000;i++)     //boucle s'arretant quand on a /*
  {
  fgets(test,3,fichier);
  ptr2=strcmpi(test,titi);
   if(ptr2==0)
   {break;}
   else
   {
   texte[i]=fgets(cart,100,fichier);
   fprintf(html,"%s<br> ",texte[i]);
   }
  }
  }
 }
 
 fclose(fichier);
 fclose(html);
 
return 0;
 
}
//***********************************************************************
 
int fonctiontri()
{
char cart[100]; //tableau de longeur 100
char *texte[max];
char *te[max];
char test[2];   //servira pour lire deux  carcateres en meme temps
char toto[]={"/*"};//tableau contenant '/*'
char titi[]={"*/"};//tableau contenant '*/'
int i=0; //servira pour le comptage dans la boucle
int ptr; //resultat de la comparaison test toto
int ptr2;//resultat de la comparaison test titi
 
 FILE *fichier; //pointeur sur une structure de type fichier
 fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule
 FILE *html;
 
 
 if(!fichier)//erreur si le fichier n'est pas l?
 {
 erreur("Le fichier Matrices.c manque" );
 }
 
 else
 {
  html=fopen("teste.htm","w+" );  //on ajoute a la fin du fichier
  fgets(test,3,fichier);
 
  ptr=strcmpi(test,toto); //on compare deux chaine
  if (ptr==0);  //si elles sont identiques on fait la boucle
  {
 fgets(cart,100,fichier);
 fprintf(html,"<H2> %s </H2>",cart);
 
  for(i=0;i<5000;i++)     //boucle s'arretant quand on a /*
  {
  te[i]=fgets(test,3,fichier);
  ptr2=strcmpi(test,titi);
   if(ptr2==0)
   {break;}
   else
   {
   texte[i]=fgets(cart,100,fichier);
   fprintf(html,"%s<br> ",texte[i]);
   }
  }
  }
 }
 
 fclose(fichier);
 fclose(html);
 
return 0;
}
 
 
 
//************************************************
***********************
//*********************  Procedure Principale ***************************
//************************************************
***********************
 
 
void main()  //procedure principale
{
 FILE *debut; //pointeur vers le fichier debut
 
 
 char *bal; //servira pour faire un lien vers devoir.htm
 
 clrscr();//on efface l'ecran sous DOS
 
 ecriturebalisesdebut(); //on appelle les fonctions
 ecriturecartouche();
 ecriturebalisefin();
 fonctiontri();
 
 debut=fopen("debut.htm","a+" ); //fichier contenant tout les fichier html
 strcpy(bal,"Pour lire le cartouche cliquez ""<a href=""cartouc.htm>""la""</A>" );
 fwrite(bal,strlen(bal),1,debut);
 fclose(debut);
}
 
//***********************************************************************
 
 
 
OK c bordelique ,je devrais plutot faire une fonction tri que j'appelle a chaque fois mais c a rentre pour Mars ,j'essait de faire un bon truc  
 
Les astuces sont tjs les bien venus :)

Reply

Marsh Posté le 29-12-2001 à 23:18:42    

Nexo a écrit a écrit :

ben j'ai compile ton truc ca me met des erreurs
 
if(source=fopen("fichier","r" )) =>Possible incorect insignement
 
voila
 
Ps: si malheuresemnt jv'ais vraiment en cours mais amphi c pas le top :(  




 
c normal, mais c juste un warning tu peux l'ignorer, tu compile avec quoi au fait?

Reply

Marsh Posté le 29-12-2001 à 23:31:20    

je compile avec turbo C++ 3.0,on utilise ca en tp
 
Desole d'etre pas un genie de C :(

Reply

Marsh Posté le 30-12-2001 à 19:56:13    

Faut bien apprendre un jour ou l'autre, personne a la science infuse ;)

Reply

Marsh Posté le 31-12-2001 à 16:11:40    

hum z'avez pas des bon livre a me conseiller pour le C ??
 
thx :)

Reply

Marsh Posté le 01-01-2002 à 00:36:52    

Essaye Le Langage C par Kernighan & Ritchie
 
pour les bases c super

Reply

Marsh Posté le 01-01-2002 à 03:57:40    

:benetton:  :cry:  :hap:  :sol:  :bounce:  :jap:  :sleep:  :sweat:  :gun:  :hello:  :eek2:  :D  ;)  :ouch: :??:  :)  :(  :o  :pt1cable:  :p  :na:  :sarcastic:  :crazy:  :wahoo:  :lol:  :??:  :fou:  :non:  :ange:  :fuck:  :love:  
 :benetton:  :cry:  :hap:  :sol:  :bounce:  :jap:  :sleep:  :sweat:  :gun:  :hello:  :eek2:  :D  ;)  :ouch: :??:  :)  :(  :o  :pt1cable:  :p  :na:  :sarcastic:  :crazy:  :wahoo:  :lol:  :??:  :fou:  :non:  :ange:  :fuck:  :love:  
 :benetton:  :cry:  :hap:  :sol:  :bounce:  :jap:  :sleep:  :sweat:  :gun:  :hello:  :eek2:  :D  ;)  :ouch: :??:  :)  :(  :o  :pt1cable:  :p  :na:  :sarcastic:  :crazy:  :wahoo:  :lol:  :??:  :fou:  :non:  :ange:  :fuck:  :love:  
 :benetton:  :cry:  :hap:  :sol:  :bounce:  :jap:  :sleep:  :sweat:  :gun:  :hello:  :eek2:  :D  ;)  :ouch: :??:  :)  :(  :o  :pt1cable:  :p  :na:  :sarcastic:  :crazy:  :wahoo:  :lol:  :??:  :fou:  :non:  :ange:  :fuck:  :love:  
 :benetton:  :cry:  :hap:  :sol:  :bounce:  :jap:  :sleep:  :sweat:  :gun:  :hello:  :eek2:  :D  ;)  :ouch: :??:  :)  :(  :o  :pt1cable:  :p  :na:  :sarcastic:  :crazy:  :wahoo:  :lol:  :??:  :fou:  :non:  :ange:  :fuck:  :love:  
 :benetton:  :cry:  :hap:  :sol:  :bounce:  :jap:  :sleep:  :sweat:  :gun:  :hello:  :eek2:  :D  ;)  :ouch: :??:  :)  :(  :o  :pt1cable:  :p  :na:  :sarcastic:  :crazy:  :wahoo:  :lol:  :??:  :fou:  :non:  :ange:  :fuck:  :love:  
c l an 2000!  bonne année!

 

[edtdd]--Message édité par veryfree--[/edtdd]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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