Schrift
[thread]556[/thread]

Zahlenvergleich in Tabellenzellen mit Perl



<< >> 4 Einträge, 1 Seite
soilant
 2005-08-24 18:38
#5485 #5485
User since
2004-08-07
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habe eine Tabelle (als HTML-Datei), in der ein paar der Zellen gefüllt sind mit einer Mailadresse gefolgt von einer Zahl, also:
Code: (dl )
...<td>jemand@irgend.wo.example,932456</td>...

In dem Fall wo meine Vergleichszahl (z.B. $zahl= "932459") grösser ist als jene in der Zelle, möchte ich den Eintrag in der Zelle löschen, ansonsten nicht.
So läuft es eben leider nicht:
Code: (dl )
1
2
3
4
5
6
7
8
...
@datei = (split /<\/td>/, <DATEI>);
foreach $datei(@datei) {
$datei =~ /.*?(.*?\@.*?,)(\d{6,}).*?/;
my ($a, $b, $c) = ($1, $2, $3);
if ($b <= $zahl) { $datei =~ s/.*?(.*?\@.*?,)(\d{6,}).*?//; }
@dateineu = (join /<\/td>/, @datei); }
...


edit pq: RFC 2606\n\n

<!--EDIT|pq|1124896287-->
Strat
 2005-08-24 19:11
#5486 #5486
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
teste mal:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
open (DATEI, "<", $dateiname) or die "Error: can't read from '$dateiname': $!\n";
my $content = do {
local $/; # alles nach $content lesen
<DATEI>;
};
close (DATEI);

while (my $line =~ m|<td>([^<]+)</td>|g) {
my ($email, $zahl) = split(/,/, $line, 2);
....
} # while

wenn du jedoch in der datei irgendwelche <td>...</td> hast, die keine mail/zahl-daten enthalten, oder wo in mail oder zahl ein < vorkommt, wird das fehlschlagen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
pq
 2005-08-24 19:19
#5487 #5487
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Wiki:use strict;
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
soilant
 2005-08-25 01:19
#5488 #5488
User since
2004-08-07
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
In Tat und Wahrheit ist das Ganze wesentlich komplexer, weil Perl die Zellen-Nr. nicht behalten kann.
Natürlich gibt es leere Zellen und solche mit kleineren und grösseren Zahlen.
Ich habe es in drei temporäre Dateien geteilt, um Perl eine kleine "Gedächtnisstütze" zu geben und anschliessend diese Datei Zeile für Zeile abgearbeitet; erst so geht es dann.
<< >> 4 Einträge, 1 Seite



View all threads created 2005-08-24 18:38.