Thread doppelte Zeilen (7 answers)
Opened by gmafx at 2010-02-26 16:44

gmafx
 2010-02-27 18:41
#133762 #133762
User since
2009-11-19
47 Artikel
BenutzerIn
[default_avatar]
Hallo,

die vorliegende (wahrscheinlich unübliche) Datenstruktur sieht so aus:

Jede Spalte meiner Tabelle wird durch einen Array (@array_1 - @array_n) dargestellt, jedes Array hat $total Elemente:

@array_1[0] @array_2[0] ..... @array_n[0]
@array_1[1] @array_2[1] ..... @array_n[1]
@array_1[2] @array_2[2] ..... @array_n[2]
... .... ..... ......
@array_1[$total] @array_2[$total] ..... @array_n[$total]

Ich habe mir jetzt eine wahrscheinlich wesentlich zu komplizierte Subroutine geschrieben, die dieses Konstrukt in diese Form übersetzt, wo nur 1 Array vorliegt, jedes Element beinhaltet einen Scalar, der eine ganze Zeile beinhaltet und die jeweiligen Werte Tab-begrenzt sind:

@array[0]= Zeile1_wert1\t Zeile1_wert2\t Zeile1_wert3\t . Zeile1_wertn\n
@array[1]= Zeile2_wert1\t Zeile2_wert2\t Zeile2_wert3\t . Zeile2_wertn\n
@array[2]= ....

Doppelte entferne ich jetzt so (ähnlich), wie das hier prinzipiell vorgeschlagen wurde: ich habe eine kleine Subroutine, die ich so aufrufe:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
@array=&del_double(@array);
$count=0;
foreach $array (@array)
{$count++;}

print "unique lines: $count\n";


sub del_double{
my %all;
grep {$all{$_}=0} @_;
return (keys %all);
}


Das funktioniert zwar, ist aber auch wieder irgendwie Kraut und Rüben!
Ginge auch was mit oben beschriebener Struktur, oder ist von dieser generell abzuraten? Wahrscheinlich schon, denn ich denke, dass viele Abläufe, die man standardmäßig mit Tabellen durchführt, eher schwierig werden könnten (zum Beispiel Sortieren).

Für die anderen (vielen) Hinweise: vielen Dank, ich werde Sie studieren und hoffentlich auch mal verstehen. Bisher erscheint mir vieles einfach zwei-zu viele Stufen über meinen Möglichkeiten.

gma

View full thread doppelte Zeilen