remplacer une chaine par une autre à partir d'une liste - Perl - Programmation

Marsh Posté le 24-11-2011 à 23:23:56   

Reply

Marsh Posté le 24-11-2011 à 23:47:58    

Tu peux aller lire directement tes valeurs dans le fichier excel, si tu sais en quelles lignes et colonnes tu les a tapées:
 
Un exemple de script qui va lire des valeurs dans une feuille excel:
 
 

Code :
  1. #!/usr/bin/perl -w
  2.  
  3. use strict;
  4. use Win32::OLE qw(in with);
  5. use Win32::OLE::Const 'Microsoft Excel';
  6.  
  7. $Win32::OLE::Warn = 3;                                # die on errors...
  8.  
  9. # get already active Excel application or open new
  10. my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
  11.    || Win32::OLE->new('Excel.Application', 'Quit');  
  12.  
  13. # open Excel file
  14. my $Book = $Excel->Workbooks->Open("c:/komodo projects/test.xls" );
  15.  
  16. # You can dynamically obtain the number of worksheets, rows, and columns
  17. # through the Excel OLE interface.  Excel's Visual Basic Editor has more
  18. # information on the Excel OLE interface.  Here we just use the first
  19. # worksheet, rows 1 through 4 and columns 1 through 3.
  20.  
  21. # select worksheet number 1 (you can also select a worksheet by name)
  22. my $Sheet = $Book->Worksheets(1);
  23.  
  24. foreach my $row (1..4)
  25. {
  26. foreach my $col (1..3)
  27. {
  28.  # skip empty cells
  29.  next unless defined $Sheet->Cells($row,$col)->{'Value'};
  30.  
  31. # print out the contents of a cell  
  32.  printf "At ($row, $col) the value is %s and the formula is %s\n",
  33.   $Sheet->Cells($row,$col)->{'Value'},
  34.   $Sheet->Cells($row,$col)->{'Formula'};        
  35. }
  36. }
  37.  
  38. # clean up after ourselves
  39. $Book->Close;


( http://www.ibm.com/developerworks/ [...] /l-pexcel/ )
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 25-11-2011 à 11:33:07    

Si ma liste est dans un fichier texte,  
peut on implémenter une fonction perl qui ouvre ce fichier texte, et effectue la modif dans un fichier cible ?

Reply

Marsh Posté le 25-11-2011 à 12:22:03    

Ben il y a rien de plus simple:
0) créer une liste vide
1) Ouvrir le fichier (open, etc)
2) lire ligne a ligne chaque mot (1 par ligne, c'est ça) et le mettre dans la liste (push, etc)
3) fermer le fichier (close, etc)
4) utiliser la liste ainsi constituée pour modifier le fichier cible suivant la méthode vue dans l'autre sujet (Tie::File etc)
 
Une variante, peut être plus adaptée, serait de faire
0) creer une variable texte contenant "{"
..
2) lire ligne a ligne chaque mot (1 par ligne, c'est ça) et ajouter "mot trouvé, " a la variable texte
3) fermer le fichier (close, etc) et ajouter "}" a la variable texte
4) utiliser le texte ainsi constitué...
 
A+,


Message édité par gilou le 25-11-2011 à 12:25:37

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed