Bestimmte Zahl aus einer Gruppe von Zahlen auswählen

dark_ghost

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem mit meiner -if- Anweisung.

Ich habe Zwei Variablen in denen integer Werte stehen (Rechnungsnummern) rechnr_von und rechnr_bis .

in meiner if abfrage wird geprüft ob in der soeben eingelesenen Zeile, eine Nummer vorkommt, die in dem Bereich zwischen rechnr_von und rechnr_bis liegt.

Code:
Code:
if ($line =~ /[$rechnr_von-$rechnr_bis]/)

Ein Beispiel:
$rechnr_von = 416520
$rechnr_bis = 416528
$line = 416523

Es werden mir sämtliche Dateien angezeigt, die eine der angegebenen Zahlen enthalten, es wird aber nicht geprüft ob diese in der vorgegebenen Reihenfolge auftauchen.

Wenn ich schreibe if ($line =~ /($rechnr_von)/)
dann bekomme ich nur den Eintrag in dem genau diese Nummer vorkommt, aber das nützt in meinem Falle nichts da ich ja alle Dateien haben will die $rechnr_von $rechnr_bis enthalten. In der obigen Abfrage kann ich aber keine () notieren und
if ($line =~ /($rechnr_von)-($rechnr_bis)/) funkioniert nicht.

Das ganze ist nicht leicht zu schildern, jedoch hoffe ich euch genug Infos gegeben zu haben damit ihr euch ein Bild davon machen könnt.


Gruß
Andreas
 
Zuletzt bearbeitet:
Hi,

habe das ganze dann einfach anders gelöst ;)

Code:
#Verzeichnis zeilenweise einlesen
        foreach my $line (readdir (DIR) )
        {
            #Splitten der eingelesenen Zeile
            my @array = split (/#/,$line);
            
            
            if ( ($array[3] >= $rechnr_von) && ($array[3] <= $rechnr_bis) && ($line =~ /[$art]/) )
            {
                $cgi->start_html('|-Verarbeitung-|'),
                    print "$line<br>";
                    print $cgi->end_html();
            }
            else
            {
                next;
            }        
        }

Ich splitte die jeweils eingelesene Zeile auf und gleiche die entsprechende Stelle des Arrays ab.

Guten Morgen
Andreas
 
Zurück