transformer une chaine de caractère

Le
programmation
Bonjour,

Dans mon programme C sous windows, j'ai un fichier contenant deux
champs: objet (chaine de caractère) et valeur(chaine de caractère)
ces deux champs sont séparés par deux points :

par exemple soit le fichier 'input.txt':


1 3 4 10 : d b c
5 2 16 8 : a d c



Je voulais transformer ce fichier par exemple dans un autre fichier
'output.txt' de sorte d'obtenir:


1 : d b c
3 : d b c
4 : d b c
10 : d b c
5 : a d c
2 : a d c
16 : a d c
8 : a d c


Je n'arrive à transformer la chaine '1 3 4 10' transformés en quatre
entiers 1, 3, 4 et 10
et pour chaque entier on ajoute la même chaine valeur 'd b c'

de même pour la chaine '5 2 16 8' transformés en quatre entiers
5, 2, 16,8
et pour chaque entier on ajoute la même chaine valeur 'a d c'

Je pensais à faire cette transformation car je voulais lire à partir
de la chaine '1 3 4 10' l'entier 1 pour faire un autre traitement qui
utilise ce entier et ne pas toute la chaine .
de même on lit l'entier 3 puis l'entier 4 puis l'entier 10.

après on fait la même chose pour la chaine '5 2 16 8' c'est à dire
nous avons besoin de l'entier 5 puis 2 puis 16 puis 8.


Que proposez vous ?

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
domi
Le #20222311
programmation wrote:
Bonjour,

Dans mon programme C sous windows, j'ai un fichier contenant deux
champs: objet (chaine de caractère) et valeur(chaine de caractère)
ces deux champs sont séparés par deux points :
par exemple soit le fichier 'input.txt':
1 3 4 10 : d b c
5 2 16 8 : a d c
Je voulais transformer ce fichier par exemple dans un autre fichier
'output.txt' de sorte d'obtenir:
1 : d b c
3 : d b c



Tu découpes juste la chaine en 2 fois : par rapport au token ":", puis
espace pour la première partie et puis tu concatènes.
C'est tout.
programmation
Le #20222621
> Tu découpes juste la chaine en 2 fois : par rapport au token  ":", pu is
espace pour la première partie et puis tu concatènes.
C'est tout.



Bonjour,

Pouvez vous détailler votre solution car je ne comprends pas votre
idée ?

C'est possible un pseudo code.

Merci.
programmation
Le #20222681
Bonjour,

Mon programme C est sous windows.

Je vous explique mon problème.

En réalité, j'ai un fichier contenant deux champs: objet (chaine de
caractère) et valeur(chaine de caractère)
ces deux champs sont séparés par deux points :

par exemple soit le fichier 'input.txt':


1 3 4 10 : d b c
5 2 16 8 : a d c


Je voulais transformer ce fichier par exemple dans un autre fichier
'output.txt' de sorte d'obtenir:

1 : d b c
3 : d b c
4 : d b c
10 : d b c
5 : a d c
2 : a d c
16 : a d c
8 : a d c


Je n'arrive à transformer la chaine '1 3 4 10' transformés en quatre
entiers 1, 3, 4 et 10
et pour chaque entier on ajoute la même chaine valeur 'd b c'

de même pour la chaine '5 2 16 8' transformés en quatre entiers
5, 2, 16,8
et pour chaque entier on ajoute la même chaine valeur 'a d c'

Je pensais à faire cette transformation car je voulais lire à partir
de la chaine '1 3 4 10' l'entier 1 pour faire un autre traitement qui
utilise ce entier et ne pas toute la chaine .
de même on lit l'entier 3 puis l'entier 4 puis l'entier 10.

après on fait la même chose pour la chaine '5 2 16 8' c'est à dire
nous avons besoin de l'entier 5 puis 2 puis 16 puis 8.


Que proposez vous ?


Merci.
domi
Le #20222771
programmation wrote:
Tu découpes juste la chaine en 2 fois : par rapport au token ":", puis
espace pour la première partie et puis tu concatènes.
C'est tout.



Bonjour,

Pouvez vous détailler votre solution car je ne comprends pas votre
idée ?



tu découpes juste avec strtok() ou fonction similaire

d'abord "1 3 4 10 : d b c" par le token ":"
1 3 4 10
d b c

puis "1 3 4 10" par le token espace
1
3
4
10

et il n'y a plus qu'à concaténer avec "d b c" conservé du premier découpage
Publicité
Poster une réponse
Anonyme