Schrift
[thread]12740[/thread]

Dateien Zeilenweise in Array Einlesen

Leser: 11


<< >> 4 Einträge, 1 Seite
Vermillion
 2008-11-10 11:46
#116156 #116156
User since
2008-07-18
24 Artikel
BenutzerIn
[default_avatar]
Ich habe vier Dateien. In jeder Datei steht ein Wort pro Zeile. Jetzt möchte ich ein Programm schreiben dass eine Datei nach der anderen öffnet und die Wörter dann in eine Liste speichern. Anschliessend sollen die Listen "durchgemischt" werden und von jeder Liste ein Wort ausgegeben werden (ergibt an Schluss einen Satz =)).

Das habe ich bis jetzt schon:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use strict;
use warnings;
use List::Util 'shuffle';


my $datei = "first.txt";
open (in,"<$datei") || die $!;

my @list; # Liste mit Wörtern

#
# Datei einlesen
#
while (<in>){
# Datei Zeilenweise auslesen


}


}
close (IN_FILE);
#Listenelemente zufällig anordnen
@list=shuffle(@list);


Wie würdet ihr die Datei zeilenweise auslesen? würdet ihr für jede Datei eine Schleife und eine Separate Liste machen und am Schluss alles zusammensetzen?
Linuxer
 2008-11-10 11:57
#116157 #116157
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hi,

ich würde

Code: (dl )
1
2
3
4
5
6
7
my @list;
for my $datei ( @dateien ) {
open my $fh, '<', $datei or die "$datei: $!";
push @list, <$fh>;
close $fh or die "$datei: $!";
}
chomp @list;


nutzen. Wie ich Deinen Text verstanden habe, willst Du den Inhalt aller Dateien in einem Array haben.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Vermillion
 2008-11-10 12:01
#116158 #116158
User since
2008-07-18
24 Artikel
BenutzerIn
[default_avatar]
Ob ich nun den Inhalt der Dateien in einem Array habe oder ob ich am Schluss beim Ausgeben die Arrays "zusammensetze" spielt keine grosse Rolle.

Aber deine Lösung sieht sehr gut aus. Ist ziemlich genau das was ich wollte. Danke.
Ronnie
 2008-11-10 12:06
#116159 #116159
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Ich würde CPAN:Tie::File empfehlen und einfach nur aus jedem "Array" einen Wert zufällig rauspicken. Bei großen Dateien schiesst man sich sonst schnell in den Fuss.
<< >> 4 Einträge, 1 Seite



View all threads created 2008-11-10 11:46.