|
|
|
|
VivoBaggio, le mercredi 3 octobre 2007 à 18:17:24Configuration: Windows XP Firefox 2.0.0.7
Salut,
la fonction chop supprime le dernière caractère d'une chaîne et retourne le caractère supprimé ce n'est pas ça qu'il te faut chaque ligne commence par le même champ. affiche ici le résultat une partie de ton csv pour voir, puisque je ne comprends pas ce que tu veux obtenir lami20j |
Alors je t'ai mis un extrait du csv. Chaque ligne doit commencer par SU1107, et comme tu peux le voir, à la ligne 3 et 4, il y a un retour charriot en plein milieu du champ. Comment l'enlever ? Merci
SU1107;6;ECLAIRAGE ELECTRICITE;071115609;Piles alcalines ultra M3 LR6 x 4, LR6 x 8,; SU1107;7;PARFUMERIE;071115179;Lames Mach3; SU1107;8;PARFUMERIE;071115181;Le pot ou le tube de 50 ml (Variétés au choix); SU1107;9;PARFUMERIE;071115180;L'atomiseur de 200 ml (Variétés au choix); SU1107;10;PARFUMERIE;071115182;Dentifrice isioactive menthe fraîche ou; |
Salut,
un truc comme ça (non testé) : $ligne =~ s/\n/ /; A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Salut,
le fichier viens du monde windows il faut savoir du quel caractère s'agit'il il pourrait être un CR ou CRLF et pas un LF envoie le fichier (mais d'aborde compresse le) par mail la commande du blux tu peux l'essayer mais il y a le risque d'avoir des surprises il faut plutot faire un test pour sur les lignes et remplacer le caractère que pour les lignes qui ne se finissent pas avec ; lami20j |
Il s'agit d'un CRLF à chaque fin de ligne.
Sinon lami20j, je t'ai envoyer l'extrait de fichier sur ta boite mail, nommé "Test.csv", avec le fichier "Test.xls", dans une archive "Test.rar" |
|
Ca marche la solution du blux, mais elles est testé sous Linux
essaie ce code donc avant d'écrire dans le fichier je traite la ligne #!/usr/bin/perl
use strict;use warnings;
use Spreadsheet::ParseExcel;
open F,">>resultat.csv"
or die "E/S : $!\n";
my $file = "Test.xls";
my $excel = Spreadsheet::ParseExcel::Workbook->Parse($file);
my $sheet = ${$excel->{Worksheet}}[0];
foreach my $row (0 ... 4{
my $cell1 = $sheet->{Cells}[$row][0];
my $cell2 = $sheet->{Cells}[$row][1];
my $cell3 = $sheet->{Cells}[$row][2];
my $cell4 = $sheet->{Cells}[$row][3];
my $cell5 = $sheet->{Cells}[$row][4];
my $res = "$cell1->{Val};$cell2->{Val};$cell3->{Val};$cell4->{Val};$cell5->{Val};";
$res =~s/\n//;
print F "$res\n";
}
__END__
lami20j |
Merci les amis pour votre aide, ça marche. Mais j'ai une dernière requête sur ce travail que je mets dans une nouvelle discussion. |