Thread Sortierprogramm das einen Dateinamen verlangt und lexiographisch sortiert (4 answers)
Opened by Michael47 at 2016-01-25 11:25

GwenDragon
 2016-01-25 11:34
#183635 #183635
User since
2005-01-17
14554 Artikel
Admin1
[Homepage]
user image
Die Datei ist aber nicht sortiert, nur die Ausgabe. ist das so verlangt?
Wenn nicht, musst du das Array in eine temporäre Datei schreiben, die alte löschen und die temporäre in die alte umbenennen!
Oder die Datei als Lesen-Schreiben-Modus öffnen, Daten in Array einlesen, Array sortieren, Datei kürzen und Array zurück schreiben.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
open (my $EINGABE, '+<', $datei)     # öffne im Modus für Lesen/Update
  or die "Can't open $datei: $!\n";

my @zeilen = <$EINGABE>;

@zeilen = sort @zeilen;

seek $EINGABE,0,0;                   # Dateizeiger auf Dateianfang
truncate $EINGABE,0;                 # Datei auf Länge 0 kürzen

print $EINGABE $_ foreach @zeilen;   # Daten in Datei zurück schreiben

close ($EINGABE) or die "Can't close $datei: $!\n";

Siehe:
http://perldoc.perl.org/functions/open.html
http://perldoc.perl.org/functions/seek.html
http://perldoc.perl.org/functions/truncate.html
Last edited: 2016-01-25 11:42:09 +0100 (CET)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread Sortierprogramm das einen Dateinamen verlangt und lexiographisch sortiert