Rechercher : dans
Par :

Remplacer Chaine de caractère avec fichiers

Dernière réponse le 3 avr 2009 à 19:31:08 Zerto, le 29 mar 2009 à 19:13:38 
 Signaler ce message aux modérateurs

Bonjour,
Je suis débutant en C.

J'aimerai remplacer une chaine de caractère contenue dans une ligne du fichier test.txt par une autre chaine que
l'utilisateur aura choisi, et que le programme puisse reconnaitre la nouvelle chaine(celle entrée par l'utilisateur) à chaque démarrage du logiciel pour que cette chaine soit à nouveau modifiable par le programme.

C'est possible ?
Merci d'avance.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « Remplacer Chaine de caractère avec fichiers » dans :
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

AmineKalaa, le 29 mar 2009 à 19:19:19

Il faut dabord savoir quelle chaine remplacer dans le fichier pour connaitre la position où inserer la nouvelle chaine

Répondre à AmineKalaa

2

Zerto, le 29 mar 2009 à 19:29:07

Par exemple la chaine dans le fichier se nomme "toto" et je voudrais la renommer en "tata" , fermer le logiciel et pouvoir modifier "tata" en "titi" , fermer le logiciel ...... et ainsi de suite ;)

Répondre à Zerto

3

Zerto, le 30 mar 2009 à 20:33:37

UP ! SVP

Répondre à Zerto

4

Zerto, le 2 avr 2009 à 19:43:36

UP!

Répondre à Zerto

5

fiddy, le 3 avr 2009 à 12:06:36

Salut,
Tu peux récrire directement dans le fichier en l'ouvrant en lecture écriture. Mais ceci ne marche que si tu remplaces une chaîne par une de même taille. Mais attention à savoir précisément où se trouve le flux de positionnement.
Ou alors, plus facile, il suffit de créer un deuxième fichier. Tu lis le premier fichier à l'aide d'un buffer que tu vas traiter avant de retranscrire dans le fichier de sortie. Et à la fin, tu renommes les fichiers.

Cdlt
Google is your friend

Répondre à fiddy

6

Charles, le 3 avr 2009 à 15:25:25

Salut,

le plus simple c'est de:
ouvrir le fichier en lecture
faire seek a la fin
en deduire la taille du fichier
faire un malloc d'une chaine de caractere de la taille du fichier
faire seek au debut du fichier
lire le fichier dans la chaine de caractere (ca peut se faire en plusieurs fois, il faut avancer le pointeur de la chaine de la taille effectivement lue a chaque fois)
fermer le fichier
parcourir la chaine de caractere a la recherche du mot a remplacer, retenir la position du debut du mot et la position de la fin dans la chaine.
ouvrir le fichier en ecriture
ecrire la chaine de caractere dans le fichier jusqu'a la position du debut du mot
ecrire le mot dans le fichier
ecrire la chaine de caractere dans le fichier jusqu'a la a partir de la fin du mot et jusqu'au dernier caractere (\0 non inclus)
fermer le fichier.
Charles

Répondre à Charles

7

fiddy, le 3 avr 2009 à 15:56:18

Salut,
Avec ta méthode s'il souhaite écrire quelque de plus grand à la place d'un mot, ça ne marchera pas.
De plus tout mettre le fichier dans un buffer n'est pas vraiment efficace surtout si le fichier contient est lourd.
Cdlt
Google is your friend

Répondre à fiddy

8

 Zerto, le 3 avr 2009 à 19:31:08

Je vais chercher tout ça paceque je connais pas beaucoup de fonctions en C
Merci 'avoir répondu :)

Répondre à Zerto