Thread Operationen auf Arrays -Frage-: Fragen zu shift und co. (16 answers)
Opened by sKy at 2007-05-01 22:55

sKy
 2007-05-03 02:00
#76356 #76356
User since
2006-12-05
10 Artikel
BenutzerIn
[default_avatar]
@Ronnie leider ist dein Code für mich an einigen Stellen schwer nachzuvollziehen.

Ich habe es nochmals selbstversucht aber es scheint so nicht zu klappen obwohl es so doch idiotensicher gehen müsste:

Ich speicher immer die gefundenen Indizes speichere die Werte und lösche die Indizes bis das Array vollständig bearbeitet wurde:


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
while(@satz)
{
my $quellelement=$satz[0]; #Erstes Element Satz nur für den späteren Vergleich nötig
my $quelldatei=$datei[0]; #jeweils erste Datei
push(@ungleich,$quelldatei);#Die Quelldatei wird in ungleich gespeichert

for my $pos($satz[1]..$#satz) #vom jeweils zweiten Element bis zum letzten
{
if ($quellelement eq $satz[$pos]) #Wenn erstes Element nochmals vorkommt
{
if ($counter==0) #Prüfe ob das Quellelement schon bearbeitet wurde
{
push(@gleich,$quelldatei); #Kopiere einmalig das jeweils erste Element in gleich
push(@Index,0); #Merk dir den Index
$counter++; #Zähler ist nun 1 somit wird die Schleife erstmal verlassen
}
push(@gleich,$datei[$pos]); #Speichere nun die anderen Werte in gleich
push(@Index,$pos); #und deren Position
}

}
$counter=0;
foreach my $element(@Index) #Löschen der nun schon verarbeiteter Indizes
{
splice @datei,$element,1;
splice @satz,$element,1;
}
@Index=(); #Neuinitialisierung von Index
}

system ("cp -v @gleich ./doppelt"); #Kopiere alle Dateien die identischen Inhalt haben
system("cp -v @ungleich ./einfach"); #Kopiere alle einfach vorkommenden Dateien


Danke bislang für eure Mühe!

Gruß
SkY

View full thread Operationen auf Arrays -Frage-: Fragen zu shift und co.