Thread Dateien einlesen und durchsuchen (17 answers)
Opened by INIING at 2012-06-28 15:05

INIING
 2012-06-28 15:05
#159451 #159451
User since
2012-06-28
21 Artikel
BenutzerIn
[default_avatar]
Hallo, vor ein paar Tagen habe ich angefangen mich mit Perl zu beschäftigen und hänge hier gerade seit längerem. Also der Code ist nicht fertig und das waren meine Ideen. Es geht darum, dass ich eine Fileliste habe und diese bei gewissen Parametern (Measurement, Parameter) abfrage, ob die Paremeter name und nameasap2 weniger als 32 zeichen haben. das funktionierte soweit(jedoch wollte ich das jetzt modifizieren und habe eine Baustelle erzeugt), wobei jede Datei einzeln eingelesen wurde. jetzt möchte ich noch überprüfen, ob in allen dateien, name oder der nameasap2, doppelt vorhanden sind. und hier hänge ich schon beim einlesen. möchte alle in einen skalar einhängen, zunächst war die idee ein array. wie würdet ihr das machen?

Code (perl): (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
use Getopt::Long;       # Parameteruebergabe

# Uebergabeparameter einlesen
GetOptions ('i=s' , \$infile1);

open (FILE1,"<$infile1")||die "\n Datei $infile1 konnte nicht geoeffnet werden\n";
print $infile1;

i=0;
while(<FILE1>){
        if($_ =~ m/.datafield$/i){
                my '$datei i' = m/^c:\\/i && m/.datafield$/i;
                #open(FILE2,"<$pfad")||die "\n Datei $infile1 konnte nicht geoeffnet werden\n";
                my @dateien =($datei i);
                i++;
        }
}



open(
my @Datafield_List = <FILE1>;
foreach(@Datafield_List){

        if

}

# foreach $zeile (@Datafield_List_Inhalt){

while  (<FILE1>){

        if($_ =~ m/<Measurement/i | $_ =~ m/<Parameter/i){
                
                while(<FILE1>){
                        
                        if($_ =~ m/nameAsap2/i && m/(\w{32})/){
                                my $File = $infile1;
                                my $zeile = $_;
                                print "\n   !!! FEHLER !!!  \n";
                                print "In der Datei '$File' besitzt folgender Strukturmember eine groessere Zeichenkette als 32 Zeichen: '$&–'\n 
                                Der Bezeichnername ist in der folgenden Zeile als nameASAP2 bezeichnet: '$zeile'";
                                #system("command", 8) und '$1' für den ersten Treffer
                        }
                        
                        
                        elsif($_ =~ m/name/i && m/(\w{32})/){
                                my $File = $infile1;
                                my $zeile = $_;
                                print "\n   !!! FEHLER !!!  \n";
                                print "In der Datei '$File' besitzt folgender Strukturmember eine groessere Zeichenkette als 32 Zeichen: '$1'";
                                #system("command", 8) nur zum abbruch, bräuchte ich eine besser Lösung
                                                        
                        }
                                
                        until($_ =~ m/>/)
                        if($_ =~        
                                next;
                }       
        }
                
}
print "\nAlle Strukturmember besitzten eine Zeichenkette von weniger als 32 Zeichen.\n";
close $FILE1;
#exit (1);


modedit Editiert von pq: code-tags hinzugefügt
Last edited: 2012-06-28 15:16:06 +0200 (CEST)

View full thread Dateien einlesen und durchsuchen