Split document texte
Fermé
RGWhitestar
Messages postés
2
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
30 janvier 2014
-
29 janv. 2014 à 16:04
RGWhitestar Messages postés 2 Date d'inscription mercredi 29 janvier 2014 Statut Membre Dernière intervention 30 janvier 2014 - 30 janv. 2014 à 13:23
RGWhitestar Messages postés 2 Date d'inscription mercredi 29 janvier 2014 Statut Membre Dernière intervention 30 janvier 2014 - 30 janv. 2014 à 13:23
A voir également:
- Split document texte
- Signer un document word - Guide
- Scanner un document - Guide
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum Bureautique
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
2 réponses
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié par [Dal] le 30/01/2014 à 11:28
Modifié par [Dal] le 30/01/2014 à 11:28
Salut RGWhitestar,
Je suppose qu'il n'y a qu'une ligne dans ton fichier texte, et que s'il y a des lignes additionnelles, elles doivent être ignorées.
Avec une regexp simple, tu peux vérifier le format des données présentées sur la ligne et capturer les données qui t'intéressent.
par exemple, comme cela :
Le programme ne traite que la première ligne, s'il y a d'autres lignes, elles sont ignorées sans générer d'erreurs.
La regexp matche :
1- une ligne commençant par
2- un ou plusieurs chiffres
3- suivis d'une virgule
4- suivie d'un ou plusieurs chiffres
5- avec rien d'autre sur la ligne
6- les parenthèses capturantes conservent les valeurs matchées en 2 et 4 dans les variables spéciales $1 et $2, que l'on range dans des variables utilisables dans la suite du programme.
Si la ligne ne matche pas, un message d'erreur de format l'indique et termine le programme.
Dal
Je suppose qu'il n'y a qu'une ligne dans ton fichier texte, et que s'il y a des lignes additionnelles, elles doivent être ignorées.
Avec une regexp simple, tu peux vérifier le format des données présentées sur la ligne et capturer les données qui t'intéressent.
par exemple, comme cela :
#!/usr/bin/perl use strict; use warnings; my $filename = 'RGWhitestar.txt'; open my $file, $filename or die "Could not open $filename: $!"; my $line; while ($line = <$file>) { print $line; last if $. == 1; } close $file; my $stat_nag = ""; my $nb_jours = ""; if ($line =~ /^([0-9]+),([0-9]+)$/) { $stat_nag = $1; $nb_jours = $2; print "code pour le statut Nagios : $stat_nag\n"; print "nombre de jour qui sépare la sauvegarde : $nb_jours\n"; } else { print "Erreur de format\n"; exit; } # faire quelque chose avec $stat_nag et $nb_jours
Le programme ne traite que la première ligne, s'il y a d'autres lignes, elles sont ignorées sans générer d'erreurs.
La regexp matche :
1- une ligne commençant par
2- un ou plusieurs chiffres
3- suivis d'une virgule
4- suivie d'un ou plusieurs chiffres
5- avec rien d'autre sur la ligne
6- les parenthèses capturantes conservent les valeurs matchées en 2 et 4 dans les variables spéciales $1 et $2, que l'on range dans des variables utilisables dans la suite du programme.
Si la ligne ne matche pas, un message d'erreur de format l'indique et termine le programme.
Dal
RGWhitestar
Messages postés
2
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
30 janvier 2014
30 janv. 2014 à 13:23
30 janv. 2014 à 13:23
Merci beaucoup pour c'est précision j'ai réussi à adapter mon code et tout fonctionne :)