Échange de caractère dans un fichier

Échange de caractère dans un fichier - C - Programmation

Marsh Posté le 17-11-2004 à 15:19:05    

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
Reply

Marsh Posté le 17-11-2004 à 15:19:05   

Reply

Marsh Posté le 17-11-2004 à 17:36:14    

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


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

Marsh Posté le 17-11-2004 à 20:07:06    

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

Reply

Marsh Posté le 17-11-2004 à 20:48:10    

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
Reply

Marsh Posté le 17-11-2004 à 20:59:05    

...
 
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à.

Reply

Marsh Posté le 17-11-2004 à 20:59:08    

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


Message édité par cris56 le 17-11-2004 à 21:02:09
Reply

Marsh Posté le 17-11-2004 à 21:00:55    

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

Reply

Marsh Posté le 17-11-2004 à 21:01:57    

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

Reply

Marsh Posté le 17-11-2004 à 21:18:46    

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
Reply

Marsh Posté le 18-11-2004 à 23:52:36    

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
Reply

Marsh Posté le 18-11-2004 à 23:52:36   

Reply

Marsh Posté le 18-11-2004 à 23:55:24    

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

Reply

Marsh Posté le 19-11-2004 à 00:02:58    

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
Reply

Marsh Posté le 19-11-2004 à 00:06:09    

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

Reply

Marsh Posté le 19-11-2004 à 00:08:25    

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
Reply

Marsh Posté le 19-11-2004 à 00:12:11    

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

Reply

Marsh Posté le 19-11-2004 à 00:13:40    

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
Reply

Marsh Posté le 19-11-2004 à 00:45:23    

tu veux faire quoi précisément

Reply

Marsh Posté le 19-11-2004 à 09:59:43    

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
Reply

Marsh Posté le 19-11-2004 à 10:06:12    

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

Reply

Marsh Posté le 19-11-2004 à 11:49:16    

vanilla@jabber.org :o


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

Sujets relatifs:

Leave a Replay

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