perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 23
Click for quality!




11.02.2012 / 23:04

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragSuchergebnisse zählen
Seitenanfang
Wie kann ich in den beiden folgenden Schleifen auszählen, wieviel Linien ($line) ausgegeben werden?

@CONTENT = <CONTENT_FILE>;
$all = @CONTENT;
close(CONTENT_FILE);
for($m=0; $m<@CONTENT && $flag_page < 1000; $m++) {
$line=$CONTENT[$m];

# Remove html tags from $line
$line =~ s/<(.*?)>/\.\.\./g;

if ($FORM{'boolean'} eq 'oder'){
foreach $text (@texts) {
if($line =~ /$text/){
# Highligt the text found
$line=~ s/$text/<b>$text<\/b>/g;

&result;

}
}
}

elsif ($FORM{'boolean'} eq 'und'){
if($line =~ /@texts[0]/) {
if ($line =~ /@texts[1]/) {
if ($line =~ /@texts[2]/) {
if ($line =~ /@texts[3]/) {
if ($line =~ /@texts[4]/) {

# Highligt the text found
foreach $text (@texts) {
$line=~ s/$text/<b>$text<\/b>/g;
}
&result;
}
}
}
}
}
}
}

Danke für die Hilfe

Georges

Datum: 06.02.2005-19:32

Beitragre: Suchergebnisse zählen
Seitenanfang
Hallo geo,

in der foreach - Schleife würde ich einfach eine Variable mitlaufen lassen. Am Anfang setzt Du diese auf 1 (z. B. zaehler = 1;).

Am Ende der Schleife erhöhst Du diese Variable (zaehler = zaehler++;).

Datum: 06.02.2005-22:17

Beitragre: Suchergebnisse zählen
Seitenanfang
Aeh... Ich seh da keine Ausgabe. Ist die Ausgabe in &result() ? Warum baust Du den Zaehler dann nicht da ein?

Datum: 06.02.2005-23:20

Beitragre: Suchergebnisse zählen
Seitenanfang
Ich habe einiges versucht, aber bei mir liefert immer nur den Wert 1 zurück. Selbst wenn 10, 20,... Zeilen ausgegeben werden.

Cremator hat recht, dass natürlich das Ergebnis in &results() ausgegeben wird. Aber selbst da bekomm ich es nicht hin, dass ich die Anzahl der Zeilen ($line) erhalte. hier noch mal mein Versuch, Ich habe den Zähler $i = 1 vor die beiden 'Wege' oder / und gestellt.
Zum Schluß habe ich die sub results () auch mal angehängt.

@CONTENT = <CONTENT_FILE>;
$all = @CONTENT;
close(CONTENT_FILE);
for($m=0; $m<@CONTENT && $flag_page < 1000; $m++) {
$line=$CONTENT[$m];

# Remove html tags from $line
$line =~ s/<(.*?)>/\.\.\./g;

$i=1;

if ($FORM{'boolean'} eq 'oder'){
foreach $text (@texts) {
$i;
if($line =~ /$text/){
# Highligt the text found
$line=~ s/$text/<b>$text<\/b>/g;

&result;

}
$i = $i++;
}

}

elsif ($FORM{'boolean'} eq 'und'){
if($line =~ /@texts[0]/) {
if ($line =~ /@texts[1]/) {
if ($line =~ /@texts[2]/) {
if ($line =~ /@texts[3]/) {
if ($line =~ /@texts[4]/) {

# Highligt the text found
foreach $text (@texts) {
$i;
$line=~ s/$text/<b>$text<\/b>/g;
}

&result;
$i = $i++;
}
}
}
}
}

}
}

sub result {
$counter = $counter + 1;
# Prints this record looping throug the template
for($tpline=$loopstart; $tpline<$loopend && $flag_page == 0; $tpline++)
{
$linet=$TEMPLATE[$tpline];
$linet =~ s/##DESCRIPTION##/$PARTS[1]/gi;
$linet =~ s/##URL##/$PARTS[0]/gi;
$linet =~ s/##NUM##/$i/gi;
$linet=~ s/##ALL##/$all /gi;
print $linet;
}
print "<td width=\"50%\">";
print "<font face=\"Arial\" size=\"2\">";
print $line;
print"<br>";
print "<\/font>";
print "<\/td>";
print "<\/tr>";
$flag_page = $flag_page+1;
if ($flag_page == 2) {$counter--;}
$flag_any = 1;

Ausgegeben werden soll die Anzahl in der Zeile $linet =~ s/##NUM##/$i/gi; im sub result

Wenn ihr wollt, kann ich gerne den ganzen Code hier posten.

Gruß Georges

Datum: 07.02.2005-00:49

Beitragre: Suchergebnisse zählen
Seitenanfang
Hallo,

den Counter hast Du an der falschen Stelle eingebaut.


$counter = $counter + 1;

ist an sich bereits korrekt. Allerdings wird in dem Bereich result nur noch die Ausgabe erzeugt. Da hier keine Schleife durchlaufen wird, erhöht sich die Variable counter genau einmal.

Ich würde - wie bereits geschrieben - den Counter in eine foreach - Schleife weiter oben einbauen. Und dann später unter result das Ergebnis ausgeben.

Datum: 07.02.2005-06:58

Beitragre: Suchergebnisse zählen
Seitenanfang
Das habe ich ja versucht, denn im Code wird beim Hochzählen ja nicht der Wert $counter abgefragt, sondern $i, und der Skalar steht in der Schleife.
(siehe code)

Deshalb bin ich ja etwas irritiert.

Danke trotzdem für deine prompte Antwort.

Gruß Georges

Datum: 07.02.2005-08:44

-






-
-