|
Trouver une ressource
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 : Supprimer une ligne (enregistrement) dans fichier [ Archives / Fichier / Disque ] (FOSTA)
Informations & options pour cette discussion
|
vendredi 13 mai 2005 à 11:40:05 |
Supprimer une ligne (enregistrement) dans fichier

FOSTA
|
Bonjour, j'ai un problème de suppression d'une ligne dans un fichier existant déjà(nous le créons plus). j'ai essayé d'écrire les fonctions ci-dessous pour faire cette suppression mais ça ne marche pas. Alors que faire?
void positionneCurs(FILE *f,long numl) { char c; long cpterl=0;
fseek(f,0,SEEK_SET); while((numl!=cpterl)) { c=fgetc(f); if(c=='\n') cpterl++; } }
/* Cette fonction permet de supprimer une ligne(enregistrement) dans un fichier */ void supprimerEnreg(int numecrit) { FILE *f; int i=0,pos; f=fopen(nomfichier,"r+"); positionneCurs(f,numecrit); fprintf(f," "); fclose(f); }
|
|
|
|
vendredi 13 mai 2005 à 11:49:29 |
Re : Supprimer une ligne (enregistrement) dans fichier

FOSTA
|
Bonjour, je souhaite recupérer une champ et le comparé à une chaine saisie au clavier, pour cela j'ai écrit les fonctions ci-dessous mais elles ne marchent pas comme je souhaite. Aidez-moi. Merci déjà.
void positionneCurs(FILE *f,long numl) { char c; long cpterl=0;
fseek(f,0,SEEK_SET); while((numl!=cpterl)) { c=fgetc(f); if(c=='\n') cpterl++; } }
char *lireligne(long numl) { FILE *f; char cdc[256]; int nbc;
nbc=nbcaract(); f=fopen( nomfichier,"r+"); positionneCurs(f,numl); fgets(cdc,nbc,f); fclose(f); return((char*) &cdc); } char *lirechamp(long posl,int posc) { char champ[25],tab[256]; int i=0,virg=0,j=0;
strcpy(tab,lireligne(posl)); while(virg<(posc-1)) { if(tab[i]==';') { virg=virg+1; } i++; } while(tab[i]!= ';') { champ[j]=tab[i]; j++;i++; } return((char*) &champ); }
/* Renvoie un rel recupr dans le fichier */ float donneReel(char *pR) { char *pC; strcpy(pC,pR); return(atof(pC)); } /* Renvoie un entier recupr dans le fichier */ int donneEntier(char *pR) { char *pC; strcpy(pC,pR); return(atoi(pC)); }
void balanceG(char cptentre[12]) { FILE *fic; long int i=0,k; float solde,montantc=0,montantd=0,montantt=0;//,Tmontantc[20],Tmontantd[20]; int d=0,c=0,j,existe=0; char lecomp[8],lecpte[8];
k=cpterligne(); //fseek(fic,0,SEEK_SET); fic=fopen(nomfichier,"r+"); while(k!=i) { strcpy(lecpte,lirechamp(i,4)); /*for(j=0;j<8;j++) lecpte[j]=*(lirechamp(i,4)+j);*/ printf("Nø compte: %s\n",lecpte); if((strcmpi(lecpte,cptentre))==0){//si compte saisi=compte fichier existe=1; if(donneEntier(lirechamp(i,5))==-1){//si le sens=-1 (Crdit) montantc=(montantc+donneReel(lirechamp(i,8)));//affectation du montant //Tmontantc[c]=atol(lirechamp(fic,i,8)); c++; } if(donneEntier(lirechamp(i,5))==1){//si le sens=-1 (Dbit) montantd=(montantd+donneReel(lirechamp(i,8))); //Tmontantd[d]=atol(lirechamp(fic,i,8)); d++; } } i++; } solde=montantd-montantc; if(existe==1){ clrscr(); gotoxy(25,5); printf("B A L A N C E G E N E R A L E"); gotoxy(2,10); printf("Compte"); gotoxy(2,14); printf("%s",cptentre); gotoxy(15,10); printf("Dbit"); gotoxy(15,14); printf("%.0f",montantd*100); gotoxy(34,10); printf("Crdit"); gotoxy(34,14); printf("%.0f",montantc*100); gotoxy(56,10); printf("Solde"); gotoxy(56,14); if(solde<0) printf("%.0f",-solde*100); else printf("%.0f",solde*100); gotoxy(70,14); if(solde<0) printf("(Crditeur)"); if(solde>0) printf("(Dbiteur)"); if(solde==0) printf("(Nulle)"); } else printf("Ce compte n'existe pas."); fclose(fic); } /* Cette fonction permet de compter le nombre lignes(enregistrements) dans un fichier */ int cpterligne() { FILE *f; int cpterl=0; char c; f=fopen(nomfichier,"r"); //fseek(f,0,SEEK_SET); while((c=fgetc(f))!=EOF) { if(c=='\n') cpterl++; } fclose(f); return cpterl; }
|
|
|
|
vendredi 13 mai 2005 à 11:56:38 |
Recupération et Comparaison de 2 chaines

FOSTA
|
Bonjour, je souhaite recupérer une champ et le comparé à une chaine saisie au clavier, pour cela j'ai écrit les fonctions ci-dessous mais elles ne marchent pas comme je souhaite. Aidez-moi. Merci déjà.
void positionneCurs(FILE *f,long numl) { char c; long cpterl=0;
fseek(f,0,SEEK_SET); while((numl!=cpterl)) { c=fgetc(f); if(c=='\n') cpterl++; } }
char *lireligne(long numl) { FILE *f; char cdc[256]; int nbc;
nbc=nbcaract(); f=fopen( nomfichier,"r+"); positionneCurs(f,numl); fgets(cdc,nbc,f); fclose(f); return((char*) &cdc); } char *lirechamp(long posl,int posc) { char champ[25],tab[256]; int i=0,virg=0,j=0;
strcpy(tab,lireligne(posl)); while(virg<(posc-1)) { if(tab[i]==';') { virg=virg+1; } i++; } while(tab[i]!= ';') { champ[j]=tab[i]; j++;i++; } return((char*) &champ); }
/* Renvoie un rel recupr dans le fichier */ float donneReel(char *pR) { char *pC; strcpy(pC,pR); return(atof(pC)); } /* Renvoie un entier recupr dans le fichier */ int donneEntier(char *pR) { char *pC; strcpy(pC,pR); return(atoi(pC)); }
void balanceG(char cptentre[12]) { FILE *fic; long int i=0,k; float solde,montantc=0,montantd=0,montantt=0;//,Tmontantc[20],Tmontantd[20]; int d=0,c=0,j,existe=0; char lecomp[8],lecpte[8];
k=cpterligne(); //fseek(fic,0,SEEK_SET); fic=fopen(nomfichier,"r+"); while(k!=i) { strcpy(lecpte,lirechamp(i,4)); /*for(j=0;j<8;j++) lecpte[j]=*(lirechamp(i,4)+j);*/ printf("Nø compte: %s\n",lecpte); if((strcmpi(lecpte,cptentre))==0){//si compte saisi=compte fichier existe=1; if(donneEntier(lirechamp(i,5))==-1){//si le sens=-1 (Crdit) montantc=(montantc+donneReel(lirechamp(i,8)));//affectation du montant //Tmontantc[c]=atol(lirechamp(fic,i,8)); c++; } if(donneEntier(lirechamp(i,5))==1){//si le sens=-1 (Dbit) montantd=(montantd+donneReel(lirechamp(i,8))); //Tmontantd[d]=atol(lirechamp(fic,i,8)); d++; } } i++; } solde=montantd-montantc; if(existe==1){ clrscr(); gotoxy(25,5); printf("B A L A N C E G E N E R A L E"); gotoxy(2,10); printf("Compte"); gotoxy(2,14); printf("%s",cptentre); gotoxy(15,10); printf("Dbit"); gotoxy(15,14); printf("%.0f",montantd*100); gotoxy(34,10); printf("Crdit"); gotoxy(34,14); printf("%.0f",montantc*100); gotoxy(56,10); printf("Solde"); gotoxy(56,14); if(solde<0) printf("%.0f",-solde*100); else printf("%.0f",solde*100); gotoxy(70,14); if(solde<0) printf("(Crditeur)"); if(solde>0) printf("(Dbiteur)"); if(solde==0) printf("(Nulle)"); } else printf("Ce compte n'existe pas."); fclose(fic); } /* Cette fonction permet de compter le nombre lignes(enregistrements) dans un fichier */ int cpterligne() { FILE *f; int cpterl=0; char c; f=fopen(nomfichier,"r"); //fseek(f,0,SEEK_SET); while((c=fgetc(f))!=EOF) { if(c=='\n') cpterl++; } fclose(f); return cpterl; }
|
|
|
Cette discussion est classé dans : fichier, ligne, enregistrement, supprimer, cpterl
Répondre à ce message
Sujets en rapport avec ce message
C : Supprimer une ligne d'un fichier [ par liloulola ]
Bonjour, ca y est, j'arrive à stocker mes structures dans un fichier !En fait, je stocke plusieurs enregistrements du type %s%s%s/nJe souhaiterais pou
supprimer enregistrement fichier en c [ par mazo0012 ]
bonjour, j'aimerai savori comment supprimer l'enregistrement d'un fichier en langage c, si quelqu'un pouvait m'aider, je l'en remercierait.@+++mika
Supprimer une ligne dans un fichier [ par PunkDude424 ]
Je voudrais savoir comment faire pour supprimer une ligne dans un fichier texte ?? Est-ce qu'il existe une commande pour supprimer une ligne dans un f
Supprimer la dernière ligne d'un fichier... [ par Clonk ]
Bonjour,je voudrais pouvoir supprimer la dernière ligne d'un fichier le plus rapidement possible...En fait, j'ajoute une ligne dans un fichier pendant
Supprimer enregistrement dans fichier en c [ par bandzai87 ]
Voilà je souhaite supprimer, un enregistrement dans un fichier de structure. En accès direct, pas en utilisant 2 fichiers par contre j'utilise que le
supprimer une ligne contenu dans un fichier txt [ par cobra176 ]
bonjour a tousje recherche un code permettant de retirer une ligne contenu dans un fichierj'ai vu qu'il existé déja des codes permettant cela mais j'a
modification date [ par drcmomo ]
Bonjour!!Je fais un traitement sur les fichiers.txtmes fichiers contiennent des centaines de lignes.Mon problème j'aimerais bien remplacer dans toutes
manipulation d'un fichier [ par Stiko ]
slt; c'est une programme pour ouvrire un fichier 'toto.txt', la premiere partie est pour afficher le cntenu de fichier dans la cosole et la deuxiéme
enregistrement fichier ASF [ par gwenp68 ]
Bonjours a tous. Je suis en train de faire un ptit programme de prévisualisation de caméra IP, qui tourne parfaitement. J'aimerais ajouter une option
VC++ Supprimer un fichier d'un projet [ par fireuo ]
Bonjour !C'est peut-etre une question vraiment conne mais comment on peu supprimer une fichier qui est ajouter dans un projet sous VC++ ?. J'ai bo reg
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|