Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1262 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Échange de caractère dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Échange de caractère dans un fichier

n°900748
vanilla
datoune's revival
Posté le 17-11-2004 à 15:19:05  profilanswer
 

Hello,
Je fais un petit programme qui ouvre un fichier et qui doit changer un caractère sur une ligne précise.
 
Quelles fonctions utilisées pour aller sur le caractère, le changer, etc ?
 
Le fichier ressemble à  


bla bla bla
...
foo bar foo
toto "1"


 
Je dois changer la valeur du "1" en "0".


Message édité par vanilla le 18-11-2004 à 23:52:58

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
mood
Publicité
Posté le 17-11-2004 à 15:19:05  profilanswer
 

n°900918
vanilla
datoune's revival
Posté le 17-11-2004 à 17:36:14  profilanswer
 

J'ai dit qqchose qui fallait pas ? :??:


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°901047
cris56
Posté le 17-11-2004 à 20:07:06  profilanswer
 

tu peux ouvrir un fichier en lecture / écriture et alterner lecture et ecriture en faisant un rewind par exemple

n°901091
vanilla
datoune's revival
Posté le 17-11-2004 à 20:48:10  profilanswer
 

J'ai regardé du côté de fseek() mais je vois pas trop comment on s'en sert...
 
L'appel fseek( stream, depl, posit) place le pointeur de fichier associé au flux stream à l'emplacement situé depl octets à partir de la position indiqué par posit.
L'argument depl peut être positif, nul ou négatif.  
 
Moi je connais que le numéro de ligne et de caractère qu'il faut changer...
 
C'est quoi ce flux stream ?


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°901108
Taz
bisounours-codeur
Posté le 17-11-2004 à 20:59:05  profilanswer
 

...
 
tu peux retourner au début du chapitre, parce que les fichiers  ne sont pas structurés en ligne ...
 
et puis un petit peut de poudre pour se dégourdir, ça pourrait aider aussi. man fopen, fseek, ftell, fgetpos, fsetpos.
 
Sinon, pourquoi tu fais du C ? parce là, tu pédales.
 
Si tu veux poursuivre, commence par faire un programme bateau comme expliquer dans le K&R : un programme qui lit sur stdin et écrit sur stdout en remplaçant les 'a' par des 'A'. T'as besoin de rien d'autres que getchar / putchar. Fais ça déjà.

n°901109
cris56
Posté le 17-11-2004 à 20:59:08  profilanswer
 

oui fais plutot ce que dis Taz, tu as l'air plutot newb


Message édité par cris56 le 17-11-2004 à 21:02:09
n°901114
Taz
bisounours-codeur
Posté le 17-11-2004 à 21:00:55  profilanswer
 

lui dit pas ça, tu vois bien qu'il comprend pas, il va galérer pour finalement tout bousiller dans son fichier parce que l'enregistrement sera remplacé par un autre de différente taille

n°901117
cris56
Posté le 17-11-2004 à 21:01:57  profilanswer
 

oui (désolé j'avais pas fais gaffe, j'ai édité)

n°901158
vanilla
datoune's revival
Posté le 17-11-2004 à 21:18:46  profilanswer
 

Pourquoi je le fais en C ? Pour le fun : ouais j'aurais pu le faire en bash mais ça m'intéresse pas.  [:itm]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°902373
vanilla
datoune's revival
Posté le 18-11-2004 à 23:52:36  profilanswer
 

Bon, comme Taz me l'avait demandé  [:itm]  
 

Code :
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. int main(void) {
  4. int c;
  5. c = getchar();
  6. while (c != EOF) {
  7.  putchar(toupper(c));
  8.  c = getchar();
  9. }
  10. return 0;
  11. }


 
C'est quoi la suite maintenant ?  [:dawa]


Message édité par vanilla le 18-11-2004 à 23:53:56

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
mood
Publicité
Posté le 18-11-2004 à 23:52:36  profilanswer
 

n°902375
Taz
bisounours-codeur
Posté le 18-11-2004 à 23:55:24  profilanswer
 

bah tu changes la ligne 9 à souhait :)
 
 
# c = getchar();
#     while (c != EOF) {
#         putchar(toupper(c));
#         c = getchar();
#     }
 
bof
 
#     while ((c = getchar()) != EOF) {
#         putchar(toupper(c));
#     }
 
est l'usage courant

n°902380
vanilla
datoune's revival
Posté le 19-11-2004 à 00:02:58  profilanswer
 

C'est ptete l'usage courant mais ça bug au début  :o
 
$ ./a.out  
a
 
d
D
e
E


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°902382
Taz
bisounours-codeur
Posté le 19-11-2004 à 00:06:09  profilanswer
 

mais non, idiot du village. c'est toi qui comprends pas ce qui se passe entre entrée et sortie
 
essaie ./a.out < fichier_texte_à_la_con

n°902383
vanilla
datoune's revival
Posté le 19-11-2004 à 00:08:25  profilanswer
 

Stoi l'idiot du village  [:mmmfff]  
 
$ echo "blabla" > prout  
$ ./a.out < prout  
LABLA
 


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°902387
Taz
bisounours-codeur
Posté le 19-11-2004 à 00:12:11  profilanswer
 

euh je sais pas ce que tu fous là mais

Code :
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. int main()
  4. {
  5. int c;
  6. while((c = getchar()) != EOF)
  7.  putchar(toupper(c));
  8. return 0;
  9. }

marche bien comme attendu

n°902389
vanilla
datoune's revival
Posté le 19-11-2004 à 00:13:40  profilanswer
 

Ok, je me tais et c'est moi l'idiot du village.  [:kahn21]  
 
Sinon pour en revenir à mon vrai pb ? :'(


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°902415
Taz
bisounours-codeur
Posté le 19-11-2004 à 00:45:23  profilanswer
 

tu veux faire quoi précisément

n°902560
vanilla
datoune's revival
Posté le 19-11-2004 à 09:59:43  profilanswer
 

Faut que je me positionne sur le caractère que je veux changer déjà je pense.


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°902567
Taz
bisounours-codeur
Posté le 19-11-2004 à 10:06:12  profilanswer
 

file moi ton JID, parce que là, ça devient pénible. Je serais en ligne cet aprèm

n°902696
vanilla
datoune's revival
Posté le 19-11-2004 à 11:49:16  profilanswer
 

vanilla@jabber.org :o


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Échange de caractère dans un fichier

 

Sujets relatifs
<input type="file"> mais sans envoyer le fichier ... possible ?[java] telecharger n'importe qu'elle fichier
Déclarer des variables dans un fichier externeInclure un fichier binaire (dll) ?!
Besoin de rapidité - comparaison - fichier & requetescomment uploader un fichier sur un autre pc en local
Evaluer le texte d'un fichier comme du code C.ouverture d'un fichier BMP
Localiser un fichier de configurationVBS :: Do while 'si le fichier existe pas
Plus de sujets relatifs à : Échange de caractère dans un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR