Thread Problem mit Array: Stringvergleich innerhalb eines Arrays (5 answers)
Opened by Gast at 2006-11-22 08:46

Gast Gast
 2006-11-22 08:46
#71899 #71899
hallo zusammen, ich habe folgendes Problem, ich habe ein Array, in dem eine x-beliebige Anzahl von Strings steht. Der Aufbu der Strings ist folgender:

XYZD2345.<irgendwas>.<irgendwas>.<irgendwas>.<irgendwas.DA32.rest

Jetzt muss jeder String mit den anderen im Array vorhandenen verglichen werden, damit festgestellt werden kann, ob es an der ersten Stelle eine Übereinstimmung gibt, und wenn ja, ob an der sechsten Stelle einer von zwei gültigen Strings steht.

Dann müssen beide Strings an ein weiteres array übergeben werden, damit diese mit einem anderem Programm verarbeitet werden können.

Mein Lösungsansatz sieht wie folgt 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
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/perl

use strict;
use warnings;
use File::Basename;
my ($pfad)="/pfad/";
my (@dateien1) = glob "$pfad*Filter*.Endung";

my (@dateien2);
my ($datei1, $datei2);
my ($file);
my ($job2);
my ($id1, $id2);
my (@dateinamen);
my (@dateinamen2);
my ($file2);

foreach $datei1 (@dateien1){
$datei1 = basename ($datei1);
if (defined($file)){
$file2 = $file;
my (@zwiarray2) = split /\./, $file2;
$job2 = $zwiarray2[0];
### nachfolgende Zeile geändert, vorher: $zwiarray2[5]
$id2 = $zwiarray2[4];
}
my (@zwiarray) = split /\./, $datei1;
my ($job) = $zwiarray[0];
### nachfolgende Zeile geändert
$id1 = $zwiarray[4];
if ($job eq $job2){
print " $job ist gleich $job2!\n";
push @dateinamen, $file;
push @dateinamen, $datei1;
}else{
print "$job ist nicht gleich $job2!\n";
push @dateinamen2, $datei1;

####hier erfolgt dann die Übergabe der Arrays @dateinamen1/@dateinamen2 an eine
####Subroutine, die ein Programm starten und mit Daten füttern soll.


}
$file = $datei1;
}

print " array1: @dateinamen,\n";
print " array2: @dateinamen2\n";

Aber irgendwie ist dieser Ansatz nicht so ganz das wahre.
Kann mir jemand verraten, wo ich auf dem Weg den Fehler gemacht habe, und wie ich ihn beheben kann?
Dank im voraus, J.

View full thread Problem mit Array: Stringvergleich innerhalb eines Arrays