Suppression de caractere ds fichier c++
Fermé
Eti38
Messages postés
55
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
16 mars 2010
-
24 juil. 2008 à 15:10
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 28 juil. 2008 à 14:26
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 28 juil. 2008 à 14:26
A voir également:
- Suppression de caractere ds fichier c++
- Forcer suppression fichier - Guide
- Caractère ascii - Guide
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
18 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
28 juil. 2008 à 14:26
28 juil. 2008 à 14:26
Le problème que tu poses est vieux comme l'informatique ou la mécanographie : Comment "RE-ECRIRE" ou même "INTERCALER" ou "ANNULER" ou "AJOUTER sauf en fin de fichier APPEND" un enregistremnt (ou un caractère) dans un fichier à organisation SEQUENTIELLE ?
Il n'y a pas de solution autre que celles qui consistent à recopier le fichier en tenant compte des modifications à lui apporter .
Il n'y a pas de solution autre que celles qui consistent à recopier le fichier en tenant compte des modifications à lui apporter .
zzzer
Messages postés
907
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
3 décembre 2023
181
24 juil. 2008 à 15:12
24 juil. 2008 à 15:12
Tu pourrais aussi tout extraire dans une chaîne (lue à partir du fichier), lire les caractères que tu veux dans cette chaîne, supprimer les caractères dans cette chaîne et rebalancer la chaîne dans le fichier en écrasant le contenu précédent... Non ?
info_med
Messages postés
11
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
4 mars 2011
24 juil. 2008 à 15:13
24 juil. 2008 à 15:13
ohhhh.....
c'est une erreur trés attendu alors simplement appuis sur la touch INS de clavier il revien automatique
si ca marche envoyer moi un message
a bien tot
c'est une erreur trés attendu alors simplement appuis sur la touch INS de clavier il revien automatique
si ca marche envoyer moi un message
a bien tot
Eti38
Messages postés
55
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
16 mars 2010
2
24 juil. 2008 à 15:17
24 juil. 2008 à 15:17
zzzer
Les fichier sont trés gros.
Donc je ne pourrais pas mettre tout ds une chaine.
info_med j'ai pas trop compris ce que tu propose:
Tu pense que je devrais écrire le caractere inser, puis ensuite le caractere suppr...?
Les fichier sont trés gros.
Donc je ne pourrais pas mettre tout ds une chaine.
info_med j'ai pas trop compris ce que tu propose:
Tu pense que je devrais écrire le caractere inser, puis ensuite le caractere suppr...?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
info_med
Messages postés
11
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
4 mars 2011
24 juil. 2008 à 15:25
24 juil. 2008 à 15:25
no je dit appuis une celle fois sur la touche INS de clavier pour rendre l'ecriture normale sur le clavier
Eti38
Messages postés
55
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
16 mars 2010
2
24 juil. 2008 à 15:36
24 juil. 2008 à 15:36
Tu es sur d'avoir compris mon probleme????
Je suis en train de FAIRE UN PROGRAMME, qui:
- ouvre un fichier,
- lit les caractere
- etc
Je ne suis pas en train d'ecrire dans un editeur de texte comme wordpad...
Si quelqu'un a une idée......
Je suis en train de FAIRE UN PROGRAMME, qui:
- ouvre un fichier,
- lit les caractere
- etc
Je ne suis pas en train d'ecrire dans un editeur de texte comme wordpad...
Si quelqu'un a une idée......
info_med
Messages postés
11
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
4 mars 2011
24 juil. 2008 à 15:43
24 juil. 2008 à 15:43
oh no je suis désolé mal compris
mais attend cherchez sur les forume de www.developpez.com
mais attend cherchez sur les forume de www.developpez.com
mich62120
Messages postés
631
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6
24 juil. 2008 à 15:47
24 juil. 2008 à 15:47
Salut,
Tu peux essayer:
1- lire les n premier
2- puis le reste tu les lis mais pour les mettre dans un autre fichier texte temporaire
3- tu ecrase ton fichier par le fichier temporaire (qui n'a pas les n premiers).
Je pense pas que ce soit le plus simple mais cela marche.
Mich
Tu peux essayer:
1- lire les n premier
2- puis le reste tu les lis mais pour les mettre dans un autre fichier texte temporaire
3- tu ecrase ton fichier par le fichier temporaire (qui n'a pas les n premiers).
Je pense pas que ce soit le plus simple mais cela marche.
Mich
zzzer
Messages postés
907
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
3 décembre 2023
181
24 juil. 2008 à 15:55
24 juil. 2008 à 15:55
mich62120> Comme il l'a dit, il s'agit de gros fichiers, donc s'il doit répéter cette instruction tout le temps, ça va demander un temps d'exécution énorme...
mich62120
Messages postés
631
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6
24 juil. 2008 à 16:03
24 juil. 2008 à 16:03
Oui c'est vrai, ce n'est qu'une proposition parce que je ne sais pas comment faire autrement.
Il a dit qu'il ne pouvait pas mettre le tout dans une chaîne mais il n'a pas dit qu'il effectue le traitement tout le temps.
Après si c'est le cas je ne pas l'aider là tout de suite et j'ai pas trop le temps de chercher.
Il a dit qu'il ne pouvait pas mettre le tout dans une chaîne mais il n'a pas dit qu'il effectue le traitement tout le temps.
Après si c'est le cas je ne pas l'aider là tout de suite et j'ai pas trop le temps de chercher.
mich62120
Messages postés
631
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6
24 juil. 2008 à 16:14
24 juil. 2008 à 16:14
Une autre proposition mais je ne sais pas si c'est faisable:
1/lire les n premiers
2/sans bouger la position du curseur (n+1) faire un /n pour mettre à la ligne tout le reste.
3/supprimer la première ligne.
?
1/lire les n premiers
2/sans bouger la position du curseur (n+1) faire un /n pour mettre à la ligne tout le reste.
3/supprimer la première ligne.
?
Eti38
Messages postés
55
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
16 mars 2010
2
28 juil. 2008 à 10:07
28 juil. 2008 à 10:07
Comment supprimer cette ligne....???
mich62120
Messages postés
631
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6
28 juil. 2008 à 10:24
28 juil. 2008 à 10:24
Il y a peu être un caractère de fin de ligne à détecter à partir du moment que touts la lignes et à supprimer.
Je sais qu'une fin de chaîne de caractère est symbolisé par '\0' mais une fin de ligne de texte je ne sais pas.
Peut être tout simplement '\n'.
Après comme je te le dis ce ne sont que des pistes sur lesquels je partirai je ne suis pas catégorique.
Je sais qu'une fin de chaîne de caractère est symbolisé par '\0' mais une fin de ligne de texte je ne sais pas.
Peut être tout simplement '\n'.
Après comme je te le dis ce ne sont que des pistes sur lesquels je partirai je ne suis pas catégorique.
Je reponds par une question :
Est ce que tu es oblige de faire ton operation en C++
car ce genre de manip sur un fichier texte peut etre fait depuis la ligne de commande (j'ai vu un linux dans ta config)
Car en C++ je ne vois pas non plus comment modifier un fichier sans le charger !!
quand tu ouvres un file c'eszt un pointeur vers une zone du disque donc tu ne pourras modifier le fichier vu que tu n'as qu'un pointeur vers le contenu du fichier ....
Est ce que tu es oblige de faire ton operation en C++
car ce genre de manip sur un fichier texte peut etre fait depuis la ligne de commande (j'ai vu un linux dans ta config)
Car en C++ je ne vois pas non plus comment modifier un fichier sans le charger !!
quand tu ouvres un file c'eszt un pointeur vers une zone du disque donc tu ne pourras modifier le fichier vu que tu n'as qu'un pointeur vers le contenu du fichier ....
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
28 juil. 2008 à 12:14
28 juil. 2008 à 12:14
Bonjour,
Il y a quelque chose que ne comprends pas bien :
J'ai essayé d'écrire le caractere 127 (suppr) en debut de fichier apres chaque lecture d'un caractere.
Je pensait que cela allait supprimer le caractere comme si j'appuyais sur la touche suppr de mon clavier...
Quand tu as fait cette manip tu (ton programme) a(s) bien été obligé de recopier le reste des caractères dans un autre fichier (ou en mémoire, c'est peu probable compte tenu de la volumétrie du fichier) puis d'écraser l'ancienne version du fichier par la nouvelle contenant les "caractères 127" et le reste du fichier (ou renommer le fichier ayant servi à la recopie et effacer l'original si nécessaire).
Pourquoi ne fais-tu pas la même manip en ignorant les caractères correspondants lors de l'écriture dans le fichier en sortie ?
Il y a quelque chose que ne comprends pas bien :
J'ai essayé d'écrire le caractere 127 (suppr) en debut de fichier apres chaque lecture d'un caractere.
Je pensait que cela allait supprimer le caractere comme si j'appuyais sur la touche suppr de mon clavier...
Quand tu as fait cette manip tu (ton programme) a(s) bien été obligé de recopier le reste des caractères dans un autre fichier (ou en mémoire, c'est peu probable compte tenu de la volumétrie du fichier) puis d'écraser l'ancienne version du fichier par la nouvelle contenant les "caractères 127" et le reste du fichier (ou renommer le fichier ayant servi à la recopie et effacer l'original si nécessaire).
Pourquoi ne fais-tu pas la même manip en ignorant les caractères correspondants lors de l'écriture dans le fichier en sortie ?
Eti38
Messages postés
55
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
16 mars 2010
2
28 juil. 2008 à 13:48
28 juil. 2008 à 13:48
Désolé,je ne comprend pas ce que tu as écrit....
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
28 juil. 2008 à 13:56
28 juil. 2008 à 13:56
C'est une interrogation sur la base de ce Zzzer à suggéré au post 2.
En d'autres termes; Commment as-tu réussi à intégrer la valeur 127 dans le fichier en remplacement de chaque caractère à éliminer?
En d'autres termes; Commment as-tu réussi à intégrer la valeur 127 dans le fichier en remplacement de chaque caractère à éliminer?
mich62120
Messages postés
631
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2010
6
28 juil. 2008 à 13:58
28 juil. 2008 à 13:58
Je crois que 127 c'est le code la touche suppr non?
Il a essayer de rentrer le code la touche pour simuler une entrée, je crois qu'il y une fonction pour faire ça.
C'est ça ou je suis complètement à coté de la plaque?
Il a essayer de rentrer le code la touche pour simuler une entrée, je crois qu'il y une fonction pour faire ça.
C'est ça ou je suis complètement à coté de la plaque?
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
28 juil. 2008 à 14:08
28 juil. 2008 à 14:08
Où c'est moi ............... !
Je vois les choses comme ça :
éééé suite du fichier à modifier .......................
Exécution du programme de traduction des éééé par 127127127127 (é = 127 en ASCII sur un octet)
127127127127 suite du fichier à modifier .......................
Je vois les choses comme ça :
éééé suite du fichier à modifier .......................
Exécution du programme de traduction des éééé par 127127127127 (é = 127 en ASCII sur un octet)
127127127127 suite du fichier à modifier .......................
Eti38
Messages postés
55
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
16 mars 2010
2
28 juil. 2008 à 14:10
28 juil. 2008 à 14:10
oui c'est bien ce que j'ai essayé de faire mais je pense que ce n'était pas une bonne idée:
Je l'ai abandonnée et j'ai adopté la technique décrite par je ne sais plus qui:
>lecture des n caracteres dans le fichier fileX
>création d'un fichier temp
>recopie de fileX dedans(sauf les n caracteres lues)
>destruction de fileX
>renommage : temp -> fileX
j'espere qu'avec mes gros fichiers cela ne posera pas trop de probleme.
Je n'ai malheuresement pas encore la possibilités de tester sur ma vraie application.Sur des test a la con cette technique marche.
Au final bien que j'ai put contourner le problême, je ne suis pas sur de marquer cette discussion comme résolue, car le probleme de base n'a pas trouvé de solution, a savoir:
comment lire un fichier en "écrasant" ce que l'on lit....?
Je me demande si cela existe
Je l'ai abandonnée et j'ai adopté la technique décrite par je ne sais plus qui:
>lecture des n caracteres dans le fichier fileX
>création d'un fichier temp
>recopie de fileX dedans(sauf les n caracteres lues)
>destruction de fileX
>renommage : temp -> fileX
j'espere qu'avec mes gros fichiers cela ne posera pas trop de probleme.
Je n'ai malheuresement pas encore la possibilités de tester sur ma vraie application.Sur des test a la con cette technique marche.
Au final bien que j'ai put contourner le problême, je ne suis pas sur de marquer cette discussion comme résolue, car le probleme de base n'a pas trouvé de solution, a savoir:
comment lire un fichier en "écrasant" ce que l'on lit....?
Je me demande si cela existe