Utilisation de la fonction chop 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
-
3 oct. 2007 à 18:17
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009 - 4 oct. 2007 à 13:42
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009 - 4 oct. 2007 à 13:42
A voir également:
- Utilisation de la fonction chop en perl
- Notice d'utilisation - Guide
- Fonction si et - Guide
- Utilisation chromecast - Guide
- Cliquez sur ce lien. en n'utilisant que le clavier, quel mot obtenez-vous ? ✓ - Forum souris / Touchpad
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
7 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
4 oct. 2007 à 13:22
4 oct. 2007 à 13:22
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
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
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
3 oct. 2007 à 18:26
3 oct. 2007 à 18:26
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
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
VivoBaggio
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
4 oct. 2007 à 09:32
4 oct. 2007 à 09:32
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;
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;
blux
Messages postés
26019
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 mai 2024
3 289
4 oct. 2007 à 10:05
4 oct. 2007 à 10:05
Salut,
un truc comme ça (non testé) :
$ligne =~ s/\n/ /;
un truc comme ça (non testé) :
$ligne =~ s/\n/ /;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
4 oct. 2007 à 10:20
4 oct. 2007 à 10:20
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 ;
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 ;
VivoBaggio
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
4 oct. 2007 à 10:58
4 oct. 2007 à 10:58
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"
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"
VivoBaggio
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
4 oct. 2007 à 13:42
4 oct. 2007 à 13:42
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.