Suppression de caractère dans une col en perl
Résolu
VivoBaggio
Messages postés
140
Date d'inscription
Statut
Membre
Dernière intervention
-
VivoBaggio Messages postés 140 Date d'inscription Statut Membre Dernière intervention -
VivoBaggio Messages postés 140 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai découvert une autre subtilité à mon code perl. Dans mon fichier xls, j'ai une colonne qui contient des parenthèses avec des chiffres. Il faut que lors de la conversion en csv, ces parenthèses soient supprimées.
Par ex : ligne 1 : (3)
ligne 2 :
ligne 3 : (2) (3)
Et je dois avoir dans mon csv
ligne 1 : 3
ligne 2 :
ligne 3 : 2,3
Je vous mets sur cjoint.com mon extrait de fichier xls avec mon extrait de fichier csv. Je vous mets également un extrait de fichier csv qu'il faudrait obtenir
https://www.cjoint.com/?kflrssGMyz Fichier Test.xls
https://www.cjoint.com/?kflr0rWDrV Fichier Test1.csv (Fichier à l'heure actuelle)
https://www.cjoint.com/?kflsJdq58n Fichier Test2.csv (Fichier que je voudrais obtenir)
La modif se trouve pour la dernière colonne.
Merci d'avance
J'ai découvert une autre subtilité à mon code perl. Dans mon fichier xls, j'ai une colonne qui contient des parenthèses avec des chiffres. Il faut que lors de la conversion en csv, ces parenthèses soient supprimées.
Par ex : ligne 1 : (3)
ligne 2 :
ligne 3 : (2) (3)
Et je dois avoir dans mon csv
ligne 1 : 3
ligne 2 :
ligne 3 : 2,3
Je vous mets sur cjoint.com mon extrait de fichier xls avec mon extrait de fichier csv. Je vous mets également un extrait de fichier csv qu'il faudrait obtenir
https://www.cjoint.com/?kflrssGMyz Fichier Test.xls
https://www.cjoint.com/?kflr0rWDrV Fichier Test1.csv (Fichier à l'heure actuelle)
https://www.cjoint.com/?kflsJdq58n Fichier Test2.csv (Fichier que je voudrais obtenir)
La modif se trouve pour la dernière colonne.
Merci d'avance
A voir également:
- Suppression de caractère dans une col en perl
- Caractère ascii - Guide
- Forcer suppression fichier - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
10 réponses
Non, juste pour cette colonne. Je pense qu'il faut rentrer dans la boucle for.
Et de plus, je l'ai pas précisé, mais quand dans cette colonne j'ai 2 chiffres, ex : (2) (3), je dois avoir 2,3.
Il y a une virgule qui s'y met entre. Sinon, il n'y a que le chiffre quand il est seul
Et de plus, je l'ai pas précisé, mais quand dans cette colonne j'ai 2 chiffres, ex : (2) (3), je dois avoir 2,3.
Il y a une virgule qui s'y met entre. Sinon, il n'y a que le chiffre quand il est seul
tu n'est pas cohérent
ton fichier a cette fois que 4 colonnes
celui d'hier avait plus - 5 il me semble
ton fichier a cette fois que 4 colonnes
celui d'hier avait plus - 5 il me semble
Oui, mais si tu savais le nombre de colonne que j'ai dans mon xls, tu péterais un cable. C'est pour ca que je l'ai réduit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui, mais si tu savais le nombre de colonne que j'ai dans mon xls, tu péterais un cable.
tu crois?!
il me faut plus de 256 colonnes pour pêté mes cables et Excel ne peux pas avoir plus :-DDD
Donc ce qui sera interessant de savoir c'est dans quelle colonne il faut supprimé
Aussi si c'est toujours quelque chose de genre (N) (N)
Puisque si tu as (NN) (NNN) alors ça sera difficile de donnerai une soluce
Donc j'ai besoin de savoir toutes les possibilités, même si je pête les cables ;-DDD
tu crois?!
il me faut plus de 256 colonnes pour pêté mes cables et Excel ne peux pas avoir plus :-DDD
Donc ce qui sera interessant de savoir c'est dans quelle colonne il faut supprimé
Aussi si c'est toujours quelque chose de genre (N) (N)
Puisque si tu as (NN) (NNN) alors ça sera difficile de donnerai une soluce
Donc j'ai besoin de savoir toutes les possibilités, même si je pête les cables ;-DDD
Ok, ca va alors, je n'ai qu'une centaine de colonne.
Mais tu peux essayer avec l'exemple que je t'ai donné, c'est à dire la colonne 4.
Aprés je l'adapterai.
Ensuite par rapport aux nombre à l'intérieur, les différents cas sont (je parle par rapport au fichier excel)
1. (1)
2.
3. (1) (2)
4. (1) (2) (3)
Et ce que je dois obtenir au final dans mon csv
1. 1
2.
3. 1,2
4. 1,2,3
Mais tu peux essayer avec l'exemple que je t'ai donné, c'est à dire la colonne 4.
Aprés je l'adapterai.
Ensuite par rapport aux nombre à l'intérieur, les différents cas sont (je parle par rapport au fichier excel)
1. (1)
2.
3. (1) (2)
4. (1) (2) (3)
Et ce que je dois obtenir au final dans mon csv
1. 1
2.
3. 1,2
4. 1,2,3
root@debian:~/src# vi ccm.pl #!/usr/bin/perl use strict;use warnings; use Spreadsheet::ParseExcel; open F,">>resultat.csv" or die "E/S : $!\n"; #my $file = "keo4cUWzZ8_Test.xls"; my $file = "Test.xls"; #my $file = "Test.xls"; my $excel = Spreadsheet::ParseExcel::Workbook->Parse($file); my $sheet = ${$excel->{Worksheet}}[0]; foreach my $row (0 ... 2 ){ my $cell1 = $sheet->{Cells}[$row][0]; my $cell2 = $sheet->{Cells}[$row][1]; my $cell3 = $sheet->{Cells}[$row][2]; my $cell4 = $sheet->{Cells}[$row][3]; $cell4->{Val} =~s/[()]//g; $cell4->{Val} =~s/\D//g; $cell4->{Val} =~s/(?<=\d)(?=\d)/,/g; my $res = "$cell1->{Val};$cell2->{Val};$cell3->{Val};$cell4->{Val};"; $res =~s/\n//; $res =~s/\x01\x53/oe/g; $res =~s/\x00//g; print "$res\n"; } __END__