Integration fonction C

cs_metek Messages postés 21 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 23 mai 2006 - 24 mars 2004 à 01:09
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 24 mars 2004 à 09:29
Bonjour!!
Voila j'ai une ptite question sur les API!!!
J'ai fait un petit programme qui liste un fichier texte cherche un mot entré et recupere le reste de la ligne dont voici le code:

#include <stdio.h>
#include <string.h>

char mot[100],file_t[10000],newtext[10000];
char k[0];

//Fonction principale
main()
{
FILE *file,*file1;
char s_read[10000];
int l_mot=0,l_file=0,t,z,n,decal=0;

system("cls");
puts("ADMIN help by METEK\n");

//Entrée du chemin du fichier
file_c();

//Ouverture en BINAIRE
file=fopen(file_t,"rb");
  //Il s'agit ici de compter combien d'octets contient le fichier
  //Un caractère étant codé sur 1 octet on aura donc le nombre de caractères du fichier
  //Le pointeur est initialement au début du fichier
  //Tant que l'on atteint pas la fin du fichier,
  //On place dans n un bloc du fichier de la taille d'un entier et on incrémente l_file
  //Le pointeur avance ainsi à chaque tour de la taille d'un entier (4 octets)
  //Il faudra donc multiplier l_file par 4 pour avoir le nombre d'octets et non de groupes de 4 octets
  while(!feof(file))
  {
  n=getw(file);
  l_file++;
  }
  //On multiplie par 4 pour obtenir le nombre d'octets
  l_file=l_file*4;
  //On ferme
  fclose(file);
  //Ouverture en ASCII
file1=fopen("temp1.txt","w");
  file=fopen(file_t,"r");
  printf ("> Fichier trouv%c (%d caract%cres) : OK",130,l_file,138);

//Entrée du mot recherché
mot_recherche();
//Longueur du mot
l_mot=strlen(mot);
//Erreur si la longueur du mot est nulle
if ((!l_mot)||(l_mot>100))
{
puts("\n> Mot incorrect (longueur nulle ou > 100) : ERREUR");
puts("> Appuyez sur une touche pour continuer...");
getch();
main();
}

for (t=0;t<=(l_file-l_mot);t++)
{
//On place le pointeur à la position t (initialement nulle puis incrémentée)
fseek(file,t,0);
//On récupère l_mot caractères à partir de cette position
//(autant de caractères que de caractères dans le mot)
//Attention, le deuxième argument est 'l_mot+1' pour récupérer l_mot caractères !
fgets(s_read,l_mot+1,file);
  //Si les chaînes mot et s_read sont identiques
if(!(strcmp(s_read,mot)))
  {
    char c;
   

     while ( (c = getc(file)) != '\n' )
            fputc (c,file1);
     fprintf(file1,"\n");
     

}
}
fclose (file1);
fclose(file);

printf("tout a ete realise avec succes");

getch();
exit();
}

//Fonction d'entrée du mot recherché
int mot_recherche()
{
printf("\n\n> Mot recherch%c ?  ",130);
gets(mot);
fflush(stdin);
return 0;
}

//Fonction d'entrée du chemin du fichier
int file_c()
{
printf("> Chemin d'acc%cs du fichier texte ?  ",138);
gets(file_t);
fflush(stdin);
return 0;
}

Bon tout cela tourne impecable sous dos!!
Or maintenant j'aimerai y mettre avec une interface graphique et y integrer a un editeur de texte programmer avec les API!!
Comment puis je faire ???
Je dois refaire tout le code ???

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mars 2004 à 01:18
Refaire tout le code: EXACT !!!

FILE *file, devient:
HANDLE hfl; // par exemple
fopen devient:
hfl = CreateFile(....);

ensuite hyper simple, WriteFile ou ReadFile.
API ne connait que des buffers d'octets, tu lui demandes la quantite il te la sort si dispo.
Sera a toi de detailler le buffer pour extraire les lignes, etc...

Regarde les sources publiees avec MSDN ouvert a cote.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_metek Messages postés 21 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 23 mai 2006
24 mars 2004 à 01:32
Merci pour cette reponse meme si ca me fait pas trop trop plaisir!!!
Bon je vais voir tous ca merci encore
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mars 2004 à 01:38
Mais si en avant, rien de tel que API.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_metek Messages postés 21 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 23 mai 2006
24 mars 2004 à 01:58
il est possible de consulter hors ligne car demin je pense y travailler a la fac mais avec le portable dehors j'ai pas internet???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mars 2004 à 09:29
Prends ces 2 indispensables:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

Le mieux est d'en obtenir une version que tu installes, tout de meme plus pratique. MSDN est normalement livre avec Visual Studio.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous