1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Eingänge, 12 Bit, 0(4)
...20mA (Stecker Typ E),
gemäss Leistungsbeschrieb
ATS 03, komplett betriebsbereit,
verdrahtet inkl. Klemmen
31 158 St ...................... .....................
R 912.553.124 Analoges Ausgangsmodul mit
galvanischer Trennung, 4
Ausgänge, 10 Bit, 0(4) ...
20mA (Stecker Typ E),
gemäss Leistungsbeschrieb
ATS 03, komplett betriebsbereit,
verdrahtet inkl. Klemmen
31 84 St ...................... .....................
R 912.553.125 DALI Modul
gemäss Leistungsbeschrieb
ATS 03, komplett betriebsbereit,
verdrahtet inkl. Klemmen 31 160 St ...................... .....................
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
#! /usr/bin/perl sub read_blocks { my $handle = shift; local $/ = shift; while ( my $block = <$handle> ) { # replace newlines with simple space $block =~ tr/\r\n/ /s; print ">>> $block <<<\n"; } } # give it a handle, and the block delimiter read_blocks( *DATA, "....\n" ); __DATA__ la le lu .... foo bar .... what ever ....
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
#! /usr/bin/perl my @collected; while ( my $line = <DATA> ) { # line must end with 4 points if ( $line =~ m/\Q....\E$/ ) { chomp @collected; push @collected, $line; print "@collected"; @collected = (); } else { push @collected, $line; } } __DATA__ la le lu .... foo bar .... what ever ....
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
#! /usr/bin/perl use strict; use warnings; use utf8; # weil Beispieldaten utf8 kodiert sind my @collected; while ( my $line = <DATA> ) { # Ausgabe wird gemacht, wenn die aktuelle Zeile nur aus Punkten besteht, oder # wenn die Zeile mit zwei Zeichenketten aus Punkten, zwischen denen ein oder mehr # Leerzeichen liegen, endet. # if ( $line =~ m/(?:^|[.]+\s+)[.]+$/ ) { chomp @collected; push @collected, $line; # ">>> " fuer Produktiv-Code entfernen print ">>> @collected"; @collected = (); } else { push @collected, $line; } } # Beispieldaten __DATA__ Eingänge, 12 Bit, 0(4) ...20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 158 St ...................... ..................... R 912.553.124 Analoges Ausgangsmodul mit galvanischer Trennung, 4 Ausgänge, 10 Bit, 0(4) ... 20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 84 St ...................... ..................... R 912.553.125 DALI Modul gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 160 St ...................... .....................
R 912.553.124 Analoges Ausgangsmodul mit galvanischer Trennung, 4 Ausgänge, 10 Bit, 0(4) ... 20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 84 St ...................... .....................
1
2
3
>>> Eingänge, 12 Bit, 0(4) ...20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 158 St ...................... .....................
>>> R 912.553.124 Analoges Ausgangsmodul mit galvanischer Trennung, 4 Ausgänge, 10 Bit, 0(4) ... 20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 84 St ...................... .....................
>>> R 912.553.125 DALI Modul gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 160 St ...................... .....................
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
use strict; use warnings; undef $/; # gesamte Datei lesen my $rohdaten = <DATA>; $rohdaten =~ s/\n/ /g; while ($rohdaten =~ m/(.+? St \.{10,} + \.{10,})/sg) { print "$1\n"; } __DATA__ Eingänge, 12 Bit, 0(4) ...20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 158 St ...................... ..................... R 912.553.124 Analoges Ausgangsmodul mit galvanischer Trennung, 4 Ausgänge, 10 Bit, 0(4) ... 20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 84 St ...................... ..................... R 912.553.125 DALI Modul gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 160 St ...................... .....................
QuoteEingänge, 12 Bit, 0(4) ...20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 158 St ...................... .....................
R 912.553.124 Analoges Ausgangsmodul mit galvanischer Trennung, 4 Ausgänge, 10 Bit, 0(4) ... 20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 84 St ...................... .....................
R 912.553.125 DALI Modul gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 160 St ...................... .....................
2012-01-19T13:32:40 GUIfreundIn der Vorschau sind im Quoteblock alle Sequenzen von Leerzeichen zu einem einzigen Leerzeichen geschrumpft, außerdem wurden die Zeilen umbrochen. Hoffentlich ist das nach dem Absenden wieder ok.
QuoteHallo pq,
danke für die Erläuterung, das wusste...