Bonjour à tous,
Est ce que quelqu'un peut m'aider:
Comment je peux extraire les lignes d'un fichier ".txt" et les mettre dans un tableau de chaine de caractères.
Je suis entrain de préparer un script sous PERL.
Merci d'avance.
Bonjour à tous,
Est ce que quelqu'un peut m'aider:
Comment je peux extraire les lignes d'un fichier ".txt" et les mettre dans un tableau de chaine de caractères.
Je suis entrain de préparer un script sous PERL.
Merci d'avance.
Bonjour,
à lire ce que tu veux, j'ai l'impression d'entendre quelqu'un qui est confronté à un problème en C
Si tu es en train de travailler ton script Perl, voici ce que je ferais :
- j'ouvre en lecture le fichier
- chaque ligne lue est rangée (ou pushée via la fonction adéquate) dans un tableau
Et voila : chaque élément de ton tableau correspondra à une ligne de ton fichier.
A toi de faire le script à présent.
On ne va pas faire ton travail. Montre nous ce que tu as fait, dis-nous sur quoi tu bloques, et on t'aidera.
Montre ton code.
Voici mon code:
#! /etc/bin/perl
print "Vous devez choisir votre test:\n";
print "1: Test FEC 1A et flux SD\n";
print "2: Test FEC 2A et flux SD\n";
$entree = <STDIN>;
if ($entree ==1)
{
# Les variable théorique de la matrice 1A SD
#$Nb_pertes_theoriques = 8;
#$Nb_packets_reçu_theorique = 32;
print " La séquence est : $seq \n\n";
#Definition du fichier "trace.txt"
$file = "trace.txt";
open (file ) or die " Impossible de trouver le fichier $file \n ";
#Nbre des lignes du fichier "trace.txt"
$ligne = $. ;
#Definition d'un tableau de chaines de caractère
@table_FEC = <file>;
close(file);
$i =0;
foreach (@table_FEC) {
#print();
$i = $i +1;
}
print "-----------------------------------\n\n\n";
print @table_FEC[20];
print "-----------------------------------\n\n\n";
print " Nbre des ligne du tableau est $i \n"
/#ici je veux mettre les ligne du fichier dans un tableau de chaine de #caractère pour que je puisse extraire des sous-chaine et par la suite les comparer
}
else
{
print "Verifier votre choix.\n";
}
Je mets ton code entre balises #, pense à faire pareil les prochaines fois, ça permet de gagner en lisibilité
@table_FEC contient déjà les lignes de tout ton fichier, je ne comprend pas trop ce que tu veux dire par "vouloir les lignes dans un tableau de caractères".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 #! /etc/bin/perl print "Vous devez choisir votre test:\n"; print "1: Test FEC 1A et flux SD\n"; print "2: Test FEC 2A et flux SD\n"; $entree = <STDIN>; if ($entree ==1) { # Les variable théorique de la matrice 1A SD #$Nb_pertes_theoriques = 8; #$Nb_packets_reçu_theorique = 32; print " La séquence est : $seq \n\n"; #Definition du fichier "trace.txt" $file = "trace.txt"; open (file ) or die " Impossible de trouver le fichier $file \n "; #Nbre des lignes du fichier "trace.txt" $ligne = $. ; #Definition d'un tableau de chaines de caractère @table_FEC = <file>; close(file); $i =0; foreach (@table_FEC) { #print(); $i = $i +1; } print "-----------------------------------\n\n\n"; print @table_FEC[20]; print "-----------------------------------\n\n\n"; print " Nbre des ligne du tableau est $i \n" /#ici je veux mettre les ligne du fichier dans un tableau de chaine de #caractère pour que je puisse extraire des sous-chaine et par la suite les comparer } else { print "Verifier votre choix.\n"; }
Perl est différent du C, les variables ne sont pas typées et ton tableau @table_FEC peut contenir indifféremment du numérique, du flottant, des caractères, des références, etc.
Heu et sinon, tes cours en Perl, tu te les procures où exactement ?
Ne te vexe pas, c'est juste que tu m'as l'air de faire en Perl comme si tu codais en C...
Et alors comment je peux récupérer les lignes sous forme de chaine de caractères ?
En fait j'ai besoin d'extraire les chiffres qui sont inclus dans les ligne et par la suite les comparer.
Est ce que je peux faire ca?
Ton tableau @table_FEC contient toutes les lignes de ton fichier.
Si tu veux afficher le contenu du tableau, tu peux insérer ça dans ton code pour voir :
Ensuite, pour ce qui est d'extraire les chiffres inclus dans les lignes, faut voir. S'il y a des séparateurs immuables séparant les données d'une ligne, tu pourras éventuellement récupérer les chiffres en utilisant la fonction split( ), sinon il te faudra employer la ruse via les expressions régulières.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach my $ligne(@table_FEC) { print "$ligne\n"; }
Je vous remercie.
c'est ce que je cherche.
Merci bien une autre fois.
La prochaine fois, pense à la FAQ, car la réponse à ton problème était dedans...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager