[Perl] Besoin d'aide
erwan
-
erwan -
erwan -
Bonjour,
Je manipules des fichiers spéciaux et j'ai besoin à un moment d'effectuer une substitution.
Seulement j'ai un soucis,ce que je dois substituer n'est jamais identique et la position peut varier aussi en fonction des champs précédents. Voici un exemple :
" ERREUR;¤;942;¤;'';¤;ERREUR;¤;1;¤;08/08/2000;¤;test;¤;ERREUR;¤;'';¤;ERREUR;¤;0;¤; "
J'ai besoin de changer "test" par une variable que j'ai stocké mais je ne trouve pas d'expressions régulières pour y parvenir.
C'est ;¤; qui joue le role de séparateur, il y en a 6 avant le champs que je souhaite substituer c'est une piste pour la solution.
Si quelqu'un peut m'aider ce serait sympa.
Merci
Je manipules des fichiers spéciaux et j'ai besoin à un moment d'effectuer une substitution.
Seulement j'ai un soucis,ce que je dois substituer n'est jamais identique et la position peut varier aussi en fonction des champs précédents. Voici un exemple :
" ERREUR;¤;942;¤;'';¤;ERREUR;¤;1;¤;08/08/2000;¤;test;¤;ERREUR;¤;'';¤;ERREUR;¤;0;¤; "
J'ai besoin de changer "test" par une variable que j'ai stocké mais je ne trouve pas d'expressions régulières pour y parvenir.
C'est ;¤; qui joue le role de séparateur, il y en a 6 avant le champs que je souhaite substituer c'est une piste pour la solution.
Si quelqu'un peut m'aider ce serait sympa.
Merci
A voir également:
- [Perl] Besoin d'aide
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- DzSoft Perl Editor - Télécharger - Édition & Programmation
- Comment lire un fichier .pl perl ? - Forum Windows
- Perl: transformer un fichier en package ✓ - Forum Perl
1 réponse
Bon au cas où qq'un aurait le même genre de problème j'ai trouvé la solution.
Il suffit de faire un split et de stocker les valeurs dans un tableau :
@tmp=split(';¤;',$_);
Puis de remplacer la valeur voulue du tableau soit ici :
$tmp[6}=.... ;
Et de reconcaténer les morceaux avec un join :
$_=join(';¤;',@tmp);
Voila
Il suffit de faire un split et de stocker les valeurs dans un tableau :
@tmp=split(';¤;',$_);
Puis de remplacer la valeur voulue du tableau soit ici :
$tmp[6}=.... ;
Et de reconcaténer les morceaux avec un join :
$_=join(';¤;',@tmp);
Voila