-1
votes

Comment lire un fichier .txt et stockez-le dans un tableau

Je sais que c'est une question assez simple, mais je ne peux pas comprendre comment stocker toutes les valeurs de mon tableau comme je le souhaite. Voici une petite partie de ce que le fichier .txt ressemble à: xxx

Chaque valeur est délimitée par deux espaces - si la valeur suivante est positive - ou un espace et un espace et un "-" - si La valeur suivante est négative

ici est le code: xxx

Je comprends que @array ne tient que la dernière ligne qui lui a été transmise. Y a-t-il un moyen d'obtenir @array pour conserver toutes les lignes?


1 commentaires

4 Réponses :


1
votes

Vous recherchez PUSH .

push @array, $line;


0 commentaires

1
votes

Si le fichier est faible par rapport à la mémoire disponible de votre machine, vous pouvez simplement utiliser la méthode ci-dessous pour lire le contenu du fichier dans une matrice xxx pré>

si vous allez lire un très Grand fichier, il est préférable de la lire en ligne par ligne, mais utilisez Push A > Pour ajouter chaque ligne à la fin du tableau. P>

push(@array,$line);


1 commentaires

Bien que ce soit génial de fournir des solutions aux problèmes plus importants, ce serait bien si vous avez également répondu à la question posée.



-1
votes
try this...


sub room
{
   my $result = "";
   open(FILE, <$_[0]);
   while (<FILE>) { $return .= $_; }
   close(FILE);
   return $result;
}
so you have a basic functionality without great words. the suggest before contains the risk to fail on large files. fastest safe way is that. call it as you like...my @array = &room('/etc/passwd');print room('/etc/passwd');you can shorten, rename as your convinience believes. to the kidding ducks nearby: by this way the the push was replaced by simplictiy. a text-file contains linebreaks. the traditional push removes the linebreak and pushing up just the line. the construction of an array is a simple string with linebreaks. now contain the steplength...

0 commentaires

0
votes

Vous n'êtes pas clair sur ce que vous voulez réaliser.

est chaque ligne d'un élément de votre tableau? p>

est chaque ligne d'une matrice dans votre tableau et vos "mots" sont les éléments de Ce tableau? p>

de toute façon. p>

Voici comment vous pouvez obtenir les deux: P>

use strict;
use warnings;
use Data::Dumper;

# Read all lines into your array, after removing the \n
my @array= map { chomp; $_ } <>;

# show it
print Dumper \@array;

# Make each line an array so that you have an array of arrays
$_= [ split ] foreach @array;

# show it
print Dumper \@array;


0 commentaires