Also ich verstehe nicht, was jetzt neu ist. Aber ich kann gerne nochmal schreiben, was das Skript machen soll:
Es bekommt eine Fileliste übergeben, welche die Endungen .datafield hat und alle files stehen in einer zeile und sind durch ein leerzeichen getrennt. diese files überprüfe ich alle. es sind xml-files. in den tags, die mit mearurement oder parameter beginnen, darf der name bzw. nameasap2 nicht größer 32 zeichen sein. zudem darf in keinem file der name bzw. asap2name doppelt stehen. bei enstprechenden fehlern, sind fehlermeldungen auszugeben.
das ist das erste skript, was ich schreibe.
Diese Fehlermeldung kommt, was ist falsch?:
Quoteccperl C:\User\views\snapshot_views\V_JL03\scwcc_tools\intern\skripte\ueberarbeitetesperlskript.pl -i C:\User\views\snapshot_views\V_JL03/scwcc_ed_tc/Module/Global/Pub/Global_types.datafield C:\User\views\snapshot_views\V_JL03/scwcc_ed_tc/Module/MCU/CCU/CCC/src/CCC_DQC_Param.datafield C:\User\views\snapshot_views\V_JL03/scwcc_ed_tc/Module/MCU/CCU/CCC/src/CCC_DQC_Measure.datafield
syntax error at C:\User\views\snapshot_views\V_JL03\scwcc_tools\intern\skripte\ueberarbeitetesperlskript.pl line 32, near "$filename ("
syntax error at C:\User\views\snapshot_views\V_JL03\scwcc_tools\intern\skripte\ueberarbeitetesperlskript.pl line 36, near ");"
syntax error at C:\User\views\snapshot_views\V_JL03\scwcc_tools\intern\skripte\ueberarbeitetesperlskript.pl line 106, at EOF
Execution of C:\User\views\snapshot_views\V_JL03\scwcc_tools\intern\skripte\ueberarbeitetesperlskript.pl aborted due to compilation errors.
omake: Shell line exit status 255. Stop.
2012-07-17 10:37:08,88
C:\User\views\snapshot_views\V_JL03\scwcc_ed_tc\Image>
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
use warnings;
use Getopt::Long;
use strict;
use File::Temp qw(tempfile tempdir);
use File::Glob;
my $infile1;
GetOptions ('i=s' , \$infile1);
print "ueberarbeitetesperlskript.pl, Version 1.0";
my @Datafield_File_List;
my @Datafield_List;
my @Suchergebnisse;
my @Datafield_List_tmp;
my $Datafield_List_tmp;
my $anzahl, my $filename;
open (FILE1, "<$infile1") || die "\n Die Datei '$infile1' konnte nicht geoeffnet werden\n";
my @files;
my $line;
while (<FILE1>){
@files = glob ("*.datafield");
foreach($filename (@files)){
print "Hier!!!!!!!!!!!!!!!!!!!!!!!! '$filename'";
opendir (File, $filename) || die "\n Die Datei $infile1 konnte nicht geoeffnet werden ($!)\n";
@Datafield_File_List=readdir(File);
chomp(@Datafield_File_List);
push (@Datafield_List,@Datafield_File_List);
chomp(@Datafield_List);
print"@Datafield_List";
}
}
while(@Datafield_List)
{
my $line_nr=0;
my $zeile;
chomp($zeile);
$line_nr++;
if($zeile =~ m/<(\w+)\s+(.*?)\s*>/i)
{
my $name=$1;
my $params=$2;
next unless($name eq 'Measurement' or $name eq 'Parameter');
my $aktZeile;
while($params =~ /(\w+)\s*=\s*"([^"]+)"\s*/gc)
{
my $key=$1;
my $val=$2;
next unless( $key eq 'nameAsap2' or $key eq 'name' );
find_double(@Datafield_List);
if(length($key) > 32)
{
my $File = $infile1;
print "\n !!! FEHLER !!! \n";
print "In der Datei '$File' Zeile $line_nr besitzt folgender Strukturmember eine groessere Zeichenkette als 32 Zeichen: '$key'\n"
}
my $value;
while (@Suchergebnisse){
if($_ =~ m/$val/i){
print "\n !!! FEHLER !!! \n";
print "\nDer '$key': '$val' ist doppelt vergeben. \n";
}
else
{
$Suchergebnisse[++$#Suchergebnisse] = $val;
}
}
}
}
close FILE1;
}
Last edited: 2012-07-17 11:03:41 +0200 (CEST)