Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]4688[/thread]

in listbox nach pattern suchen

Leser: 1


<< >> 9 Einträge, 1 Seite
hudo
 2003-12-03 19:05
#46297 #46297
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich moechte in einer Listbox nach einem pattern suchen
und dann (Listbox loeschen) das Such-Ergebnis in derselben Listbox
ausgeben.

Gruss
Strat
 2003-12-03 19:29
#46298 #46298
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn deine Listbox $lb heisst, koennte man das folgendermaszen machen:
Code: (dl )
1
2
3
4
5
6
7
8
my $pattern = qr(test);

my @items = $lb->get(0, 'end');
for(my $i=$#items;$i>0;$i--){
 if ($items[$i] !~ /$pattern/) {
   $lb->delete($i);
 }
}

nicht getestet, aber vielleicht funktionierts...\n\n

<!--EDIT|Strat|1070472609-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-12-04 01:39
#46299 #46299
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Da würd ich ja lieber die Zeilen aus dem Array (@items in Deinem Beispiel) mit grep raussuchen, die Listbox leeren und das Ergebnisarray wieder eintragen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
hudo
 2003-12-04 19:44
#46300 #46300
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Sieht bei mir grad so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
my $eingabe= $frame2->Entry(-textvariable=>\$suchvariable ,-exportselection=>1 ,selectbackground=>"green" ,-selectforeground=>"yellow")->pack(-anchor=>"w" ,-padx=>10 ,-pady=>5 ,-fill=>"x");

##### suche in listbox ###################################################
sub such_pattern{

my @elements;
my @ergebnisliste;
my $elem;

$fehler->delete("1.0","end");

if ( (defined $suchvariable) && (length($suchvariable) > 0) ) {
print "suchvariable: $suchvariable\n";
### alle elemente der listbox erhalten #################
@elements = $liste->get(0,"end");
foreach $elem (@elements) {
if ( $elem =~ m/$suchvariable/i ) {
print "$elem\n";
push(@ergebnisliste, $elem);
}
}

### etwas gefunden --> baue neue listbox (Liste) auf ########
if ( defined $ergebnisliste[0] ) {
$liste->delete(0,"end");
foreach $elem (@ergebnisliste) {
$liste->insert("end" , $elem);
}
} else {
$fehler->insert("end", "\n\n\nNichts gefunden");
}
} else {
print "is nix\n";
}
} ## sub such_pattern ####################################################
hudo
 2003-12-04 20:27
#46301 #46301
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Wieso sind die Einrueckungen weg, wenn ich den Code
da hinein kopiere ???????
Strat
 2003-12-04 21:16
#46302 #46302
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wahrscheinlich, weil du mit tabulatoren einrueckst und nicht mit leerzeichen? da koennte ich beim neuen board noch einen mechanismus einbauen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-12-08 17:01
#46303 #46303
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Hauptsache der Code-Tag frisst nicht wie hier das erste Whitespace :)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2003-12-08 17:37
#46304 #46304
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Crian: du bist gut genug in Perl, dass du das eigentlich auch coden koenntest ;-)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-12-08 17:41
#46305 #46305
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
:blush: ups .. ja ... da fällt mir wieder siedend heiß ein, dass ich mich ja weiter in den Forencode einarbeiten wollte ... *argh* im Moment will ich zu viele Dinge auf einmal und komm zu nichts so richtig... :(
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 9 Einträge, 1 Seite



View all threads created 2003-12-03 19:05.