Thread Suchen im Array!? (5 answers)
Opened by GAST at 2009-04-08 14:09

murphy
 2009-04-08 14:49
#120398 #120398
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Guest GAST
[...] ich habe ein große Datei, in dieser stehen Infos, dich ich gerne aufteilen will!
Als 1. schreibe ich diese Datei in ein Array, weil ich diese hier schon aufteile, [...]

Warum erst alles einlesen? Man kann doch auch on-the-fly aufteilen...

Quote
[...] Und ich will genau alles zwischen jedem "Dut No" incl. alles was bis zum nächsten "Dut No" steht in jedem Schritt (in einer Schleife) ausgegeben haben, [...]

Hier mal ein Beispiel, wie man direkt beim Einlesen jeden mit Dut No beginnenden Block in ein Arrayelement packen kann:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use warnings;

use Data::Dumper;

my ($i, @d) = (-1);

while (<>) {
  if (/^Dut No/) {
    $d[++$i] = '';
  }
  else {
    $d[$i] .= $_;
  }
}

print Dumper \@d;


Wenn man zum Erkennen der Blockstarts keinen regulären Ausdruck benötigt geht es sogar noch einfacher unter Verwendung des Eingabedatensatztrennzeichens:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use strict;
use warnings;

use Data::Dumper;

my @d = do {
  local $/ = "Dut No$/";
  my @d = <>;

  chomp @d;
  @d[1..$#d];
};

print Dumper \@d;
When C++ is your hammer, every problem looks like your thumb.

View full thread Suchen im Array!?