Insérer un espace en perl

Résolu/Fermé
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009 - 12 oct. 2007 à 10:48
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009 - 12 oct. 2007 à 11:41
Bonjour. Je pensais avoir fini avec ce prog en perl, mais c'était sans compter sur la problématique posée par un collègue. Pour ceux qui ont suivi mon projet, en particulier lami20j, je devais créer un csv à partir d'un xls en perl. Récupérer les valeurs, modifier des caractères, insérer des caractères ont rythmés ce projet.
Maintenant, la problématique est la suivante.
A un moment donné, j'ai une ligne de code qui correspond à la suppression d'un éventuel retour chariot dans le csv, car dans mon fichier excel, une cellule peut contenir plusieurs lignes. Avec l'aide de lami20j, le problème a été réglé.
Mais ce que je n'avais pas vu, c'est que lorsque le retour chariot est supprimé, le mot se colle au précédent.

Exemple du fichier .csv
Avant l'aide de lami20j, c'est à dire avec le retour chariot
SU1107;9;PARFUMERIE;071115180;L'atomiseur de 200 ml
(Variétés au choix);25;

Après l'aide de lami20j, c'est à dire sans le retour chariot
SU1107;9;PARFUMERIE;071115180;L'atomiseur de 200 ml(Variétés au choix);25;

Ce que je veux obtenir maintenant - "regarder l'espace entre ml et (Variétés"
SU1107;9;PARFUMERIE;071115180;L'atomiseur de 200 ml (Variétés au choix);25;

Extrait du code
$cell5->{Val} =~s/\n//; # Permet de supprimer le retour chariot

$cell5->{Val} =~s/\n/x20/ /; # Ce que j'ai fait pour enlever le retour chariot et mettre un espace, mais ça ne marche pas.

Quelqu'un peut m'aider. Merci d'avance

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 oct. 2007 à 11:24
Salut,

en fait il faut remplacer le retour chariton par un espace, nous on l'a supprimé

donc au lieu de suppression
$cell5->{Val} =~s/\n//; # Permet de supprimer le retour chariot

on remplace avec un espace
$cell5->{Val} =~s/\n/ /; # Permet de remplacer le retour chariot avec un espace
--
lami20j
0
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009
12 oct. 2007 à 11:41
Je n'ai qu'un mot : Merci
0