klaus: Mitteilung ausgeben: no data found

Beitrag lesen

hallo,

mir fallen da spontan zwei möglichkeiten ein:

1.) Zuerst einlesen, dann  ausgeben

open INDATA,$datafile or die "can't open Datafile: $!";
while(<INDATA>)
   {
   push @Ergebnis,$_ if &gefunden($_);  
   }
if($#Ergebnis <0) # keine Daten gefunden
  {
  print "no data found"; #nur ein Beispiel
  }
else
{
&ErgebnisAusgeben();
}

oder
2.) On the fly ausgeben, merken ob was ausgegeben wurde, dann Meldung bei Bedarf:

open INDATA,$datafile or die "can't open Datafile: $!";
$gefunden = 0;

while(<INDATA>)
   {
   if &gefunden($_)
     {
     &ZeileAusgeben($_);
     $gefunden++;
     }
   }
print "no data found" unless $gefunden;

Die verwendeten Funktionen sind 'dummies', sollten halt auch ausprogramiert werden.

Die zweite Variante hat den Vorteil, daß sie nicht so speicherintensiv ist. mit '$gefunden' bzw. '$#Ergebnis' kannst Du auch gleich eine Begrenzung mit einbauen, falls zu viele Daten angezeigt werden würden, oder so.

Die Beispiele sind zwar nicht ganz sauber (kein 'my' und solche Sachen), aber ich denke, das Prinzip wird klar. Den Rest kannst Du ja selber machen.

Grüße
  Klaus