begin process at 2012 05 28 09:17:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

J'y arrive pas et ca m'enerve


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

J'y arrive pas et ca m'enerve

mercredi 18 mai 2005 à 22:54:58 | J'y arrive pas et ca m'enerve

nach73

j'ai un probleme que je dois resoudre pour demain.
Je dois remplacer un mots dans un fichier
ma fonction qui effectue cela se plante royalement
Rem:la fonction PremCarPos renvoye la position
du mot a remplace
fd
fichier ou on cherche le mot
ftmp fichier ou on ecrit


void ModificationFichier (char *ch1,char *ch2,FILE *fd,FILE *ftmp)
{
     int Lch2,Lch1;
     long Depart=0,pos=0,pos1=0;
     char *memoir;
     memoir=(char*)malloc(TAILLE);
     Lch1=strlen(ch1);
     Lch2=strlen(ch2);
     pos=PremCarPos(ch1,fd,Depart);
     fseek(fd,0L,SEEK_SET);
     fread(memoir,sizeof(char),pos,fd);
     fwrite(memoir,sizeof(char),pos,ftmp);
     fwrite(ch2,sizeof(char),Lch2,ftmp);
     while (!feof(fd))
     {
            pos=pos+Lch1;
            pos1=PremCarPos(ch1,fd,pos);
            pos=pos1;
            fseek(fd,pos,SEEK_SET);
            fread(memoir,1,pos,fd);
            fwrite(memoir,1,pos,ftmp);
            }
           
     return ;
}

jeudi 19 mai 2005 à 09:31:17 | Re : J'y arrive pas et ca m'enerve

ymca2003

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

int main(int argc, char* argv[])
{
 FILE* fsrc;
 FILE* fdst;
 char* szfind;
 char* szreplace;
 char* buf;
 char* p1;
 char* p2;
 int len;
 int lenfind;
 int lenreplace;

 // ouverture fichier source et destination (en binaire pour éviter la transformation des \r\n)
 fsrc = fopen(argv[1], "rb");
 fdst = fopen(argv[2], "wb");
 szfind = argv[3];
 szreplace = argv[4];
 lenfind = strlen(szfind);
 lenreplace = strlen(szreplace);

 // taille fichier source
 fseek(fsrc, 0, SEEK_END);
 len = ftell(fsrc);
 fseek(fsrc, 0, SEEK_SET);

 // lecture fichier source
 buf = malloc(len+1);
 fread(buf, 1, len, fsrc);
 buf[len] = '\0';
 
 // boucle de recherche
 p1 = buf;
 while((p2 = strstr(p1, szfind)) != NULL)
 {
  // écriture du texte situé entre p1 et p2
  fwrite(p1, 1, p2-p1, fdst);

  // remplacement du texte
  fwrite(szreplace, 1, lenreplace, fdst);

  // on se déplace à la fin du texte trouvé
  p1 = p2+lenfind;
 }

 // on recopie la fin du fichier (de p1 à buf+len)
 if(buf+len-p1 > 0)
  fwrite(p1, 1, buf+len-p1, fdst);

 // fermeture fichiers, libération mémoire
 fclose(fsrc);
 fclose(fdst);
 free(buf);
 return 0;
}

mardi 22 novembre 2005 à 12:56:31 | Re : J'y arrive pas et ca m'enerve

qsdfgh



nb,b,nosé


Cette discussion est classée dans : ch1, char, pos, fd, memoir


Répondre à ce message

Sujets en rapport avec ce message

probleme de fichier [ par nach73 ] bonjour de je suis debutant en c.Je suis occupe a ecrit un prog qui cherche un mot saise a la console.J'ai un probleme quand je recherche la position Problème de lecture fichier [ par nach73 ] J'ai un enorme probleme je n'arrive pas a lire dans mon fichierVoila la partie de mon programme.Si quelqu'un peux m'aide.Merci.//ouverture du fichier Concatener ch1 et ch2. ch1 doit aller après ch2 [ par iras ] Qqun pourrait me dire où est ce ce programme de concaténation bloque. La compilation n'indique aucune erreur mais l'exécution foire#include #include # petit problême de chaine [ par Cphil51 ] Je débute en C++ et j'ai un petit problême avec mon code. J'ai créé une fonction qui prend en argument une chaine et un entier et qui retourne les n p Fonction substr en C [ par julien_boss ] Bonjour,j'ai codé cette fonction, sensée être l'équivalent de string::substr(...) en C :char * StrSub(const char *s, int pos, int len){    char *ps = probléme de déplacement d'une case a une autre dans un tableaux de type char* [ par mlikos ] Bonjour, est ce qq1 peut m'aider a résoudre ce problème : #include #include #include struct coordonnees { int x; int y; }; typedef struc Pb fichier en C [ par lenneth666 ] alors voilà j'aimerais récupérer les lignes d'un fichier pour les mettre dans un char **pour ensuite trier les lignes de ce fichier. Dc je récupere d faire un "ls" mais en C [ par timy94 ] bonjour,Je voudrais ecrire quelques lignes de codes pour remplacer la commande ls sous linux, pour me passer de la commandesystem("ls"); qui ne renvoi OpenGL [ par bouba ] Bonjour, je souhaite dessiner avec OpenGL et afficher le résultat dans une image mais je ne veux pas du tout l'afficher dans une fenêtre, j'ai donc cr ca plante et sa m'enerve [ par nach73 ] Bonjour je suis debutant j'essaie de copier un fichier source dans un fichier destinataire par des fonctions ci dessous.Mais seulement il me creer bie


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,068 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales