Batch - copier des parties d'un fichier texte [RESOLU] - Shell/Batch - Programmation
Marsh Posté le 31-03-2015 à 16:32:23
Bonjour,
Il va te falloir utiliser un langage de script comme perl, python voire awk.
En perl, un script comme celui ci ferait le boulot, au vu de tes specs.
Code :
|
A+,
Marsh Posté le 03-04-2015 à 12:09:37
Merci Gilou pour ta proposition en perl.
Je pense que le perl doit proposer beaucoup plus de possibilité mais je ne connais pas ce language pour l'instant et n'ai pas le temps de de l'appréhender pour mon script.
Je travaille actuellement sur un code en batch qui j’espère fera l'affaire.
Bonne journée
Marsh Posté le 03-04-2015 à 13:46:03
Vu que le batch n'est absolument pas adapté à ce genre de choses, bon courage!
A+,
Marsh Posté le 07-04-2015 à 11:37:38
Bonjour,
J'ai finalement réussi à faire mon script en batch.
Si ça intéresse quelqu'un, je le posterai
Bonne journée
Marsh Posté le 07-04-2015 à 11:42:34
Oui, n'hésites pas à le poster, découper ta ligne en champs, en batch c'est complexe mais faisable, ce qui m'intéresserait c'est de voir comment tu t'es débrouillé pour lire tes lignes par blocs de 3 ou 4.
A+,
Marsh Posté le 07-04-2015 à 14:48:34
Dans l'exemple que j'avais mis sur mon 1er message, j'indiquais que le document d'origine était fait comme ca
Nom1
adresse1
Ville1
Mais en fait, les champs nom, prenom et adresse sont sur 7 lignes. mais il y a bien 3 colonnes de données
Voici le code un peu commenté
Code :
|
Marsh Posté le 31-03-2015 à 11:48:05
Bonjour,
Je désire transformer un document texte en le recopiant et en le réaménageant suivant le nombre de caractère.
Je m'explique :
j'ai un document txt fait ainsi
Nom1 Nom2 Nom3
adresse1 Adresse2 Adresse3
Ville1 Ville2 Ville3
Nom4 Nom5 Nom6
adresse4 adresse5 adresse6
Ville4 Ville5 Ville6
et je désire le recopier dans un fichier csv en triant les données par colonne :
Nom1;adresse1;Ville1
Nom2;adresse2;Ville2
Nom3;adresse3;Ville3
Nom4;adresse4;Ville4
Nom5;adresse5;Ville5
Nom6;adresse6;Ville6
Bien sur le il y a beaucoup plus de ligne.
Chaque partie de mon texte d'origine ont toujours la même taille (37 caratères) et il y a toujours 7 caractères entre 2 parties :
Nom1 fait 37 caractères et il y a 7 caractères entre nom1 et nom2.
Quelle commande peut me permettre de récupérer les 37 premiers caractères de la ligne 1 puis des 44eme au 81eme caractère ...
et en faire une concaténation
Merci d'avance pour vos idées
Bonne journée
Message édité par stpre le 07-04-2015 à 11:38:49