Bogdan Stopka: 6000 Zeilen auslesen und spliten?

Hallo,

ich stehen vor einem zeitaufwendigen Problem. Mein Code:

--------------------------------
sub GetText {

use FileHandle;

my (@nr, @val, @textlines) = ();
    my $k = 0;
    my $TextFile = "/home/user/test.txt";

open (SPRACHE, "<$TextFile") or die $!;

while ($textlines = <SPRACHE>) {

($nr[$k],$val[$k]) = split(/ /, $textlines, 2);

$k++;
    }
    close SPRACHE;
    return 0;
}
--------------------------------

Die Datei "test.txt" besteht aus min. 6000 Zeilen von strings. Z.B.:

1 Text
2 Bla-bla...
.
.
.
.
6045 Noch was

ich möchte diese Datei spliten, so wie es in meiner Funktion beschrieben wurde und es dauert einige Sekunden... etwa 4-6 Sekunden. Wie kann ich man hier Gaz geben?

Danke.

  1. Hi,

    Die Datei "test.txt" besteht aus min. 6000 Zeilen von strings. Z.B.:

    1 Text
    2 Bla-bla...
    .
    .
    .
    .
    6045 Noch was

    ich möchte diese Datei spliten, so wie es in meiner Funktion beschrieben wurde und es dauert einige Sekunden... etwa 4-6 Sekunden. Wie kann ich man hier Gaz geben?

    Wenn die Zeilennnummer in der Datei wirklich nur durchlaufend und ohne Lücken ist, kannst du ja auf ihre Speicherung verzichten.
    Ansonsten könnte es evt. schneller sein, die Position des Leerzeichens mittels index rauszufinden und die Zeile dann mit substr zu trennen.

    HTH

    Margin-Auto

    1. Wenn die Zeilennnummer in der Datei wirklich nur durchlaufend und ohne Lücken ist, kannst du ja auf ihre Speicherung verzichten.

      Ja, das habe ich vergessen. Die Zeilennummer sind nicht durchlaufend. Nach 19 kann sofort die 227 vorkommen.