Thread Grenzen setzen klappt nicht! (7 answers)
Opened by Gast at 2008-01-16 12:00

Gast Gast
 2008-01-16 12:00
#104782 #104782
Moinsen,
ich kriege es einfach nicht hin die Grenzen zu setzen, ich wollte das die Datei haupt.txt nach diesem Suchmuster durchsucht wird und wenn es jedesmal gefunden wird, wird dieser Absatz in eine neue Datei geschrieben, in diesem Fall wären es 2 dateien, die noch erzeugt werden und jede ist nach der Seriennummer benannt!
Doch mein Suchmuster, das in @mach0 hinterlegt ist durchläuft nicht Absatzweise (in dieser Datei (haupt.txt)) wären es 2 Absätze, es kopiert alles von DUT No und geht bis zum letzten End Sequence: SetIdleCurrent?!
Kann mir jemand weiterhelfen?

hier die Datei haupt.txt:
Code: (dl )
1
2
3
4
5
6
7
8
DUT No
HIER STEHT VIEL ZEUG
Measurement:7667000583
End Sequence: SetIdleCurrent
DUT No
HIER STEHT VIEL ZEUG
Measurement:8888000583
End Sequence: SetIdleCurrent


und mein kleines Prog:
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
#!bin\perl	

$quelle = $ARGV[0];
$x = $ARGV[0];
$x =~ s/(\w+)\.\w+/$1/;
$ziel = $x;

#open (INPUT,"<$quell_verzeichnis$quelle") or die "konnte $ziel nicht oeffnen,$!\n";
open (INPUT,"<$quelle") or die "konnte $ziel nicht oeffnen,$!\n";
undef $/;
open (OUTPUT,">$ziel.txt") or die "konnte $ziel nicht oeffnen,$!\n";
$_ = <INPUT>;
close (INPUT);

print OUTPUT "$_";

@mach0 = s/DUT No\s(.+?)End Sequence: SetIdleCurrent\s/gsm;

foreach (@mach0)
{
($seriennummer) = /Measurement:([0-9]{10})/;
open (OUTPUT2,">$seriennummer.txt") or die "konnte $ziel nicht oeffnen,$!\n";

#Anfang der Datei
print OUTPUT2 "DUT No\n";

print OUTPUT2 @mach0;

#Ende der Datei
print OUTPUT2 "End Sequence: SetIdleCurrent";
close OUTPUT2;
}

print OUTPUT "\n";

close OUTPUT;

#~~~> END of Code

View full thread Grenzen setzen klappt nicht!