Leser: 46
next if $line =~ m/^"\("/;
next if $line =~ m/^\s*\(/;
2010-12-22T08:51:21 payxÜbrigens oben muss in Zeile 13 der Punkt noch escaped werden, sonst matcht er jedes Zeichen.
1
2
3
4
5
6
$ perl -wle '"abc" =~ m/^[a.c]+$/ && print "ja" '
$
$ perl -wle '"abc" =~ m/^[abc]+$/ && print "ja" '
ja
$
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -p
use strict;
use warnings;
use vars qw(%var);
while ( /([A-Z][0-9]*)=(\S+)/g ) {
my( $id, $val, $pos ) = ( $1, $2, pos );
my $len = length $val;
(my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge;
if ( $tmp_val =~ /^[\d\*\/\+\-\(\)]+$/ ) {
$tmp_val = eval $tmp_val;
$var{$id} = $val = $tmp_val unless $@;
}
substr $_, $pos - $len, $len, $val;
pos = $pos - $len + length $val;
}
if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ && $tmp_val !~/^\(/) {
if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ && index($tmp_val,'(')!=0) {
if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ && substr($tmp_val,0,1) ne '(') {
2010-12-22T08:32:46 benji2010...nur weiß ich nicht wie ich den ersten char im String auslese zum vergleichen...
1 2 3 4 5 6 7 8 9 10
while ( /([A-Z][0-9]*)=(\S+)/g ) { # Wenn erstes Zeichen eine '(' ist, if ( substr($_,0,1) eq '(' ) { # springe zur naechsten Zeile next; } # hier folgt dann der andere Code }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl -p
use strict;
use warnings;
use vars qw(%var);
while ( /([A-Z][0-9]*)=(\S+)/g ) {
if ( substr($_,0,1) eq '(' ) {
next;
my( $id, $val, $pos ) = ( $1, $2, pos );
my $len = length $val;
(my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge;
if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) {
$tmp_val = eval $tmp_val;
$var{$id} = $val = $tmp_val unless $@;
}
substr $_, $pos - $len, $len, $val;
pos = $pos - $len + length $val;
}
QuoteT600250
T801260
N230 T306520
QuoteR10=25
QuoteR10=26
QuoteR10=52
benji2010Hier mal der derzeitige Code:
...
1 2 3 4 5 6 7 8 9 10
while ( /([A-Z][0-9]*)=(\S+)|T\d{3}(\d\d)\d/g ) { my( $id, $val, $t_expr, $pos ) = ( $1, $2, $3, pos ); if ( defined $t_expr ) { $var{'R10'} = $t_expr; next; } # restlicher Code... }
QuoteR11=50
(R3=4
R1=5
X=R11+R1
X=R3
QuoteR11=50
(R3=4
R1=5
X=55
X=R3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl -p
use strict;
use warnings;
use vars qw(%var);
while ( /([A-Z][0-9]*)=(\S+)/g ) {
if ( substr($_,0,1) eq '(' ) {
next;
}
my( $id, $val, $pos ) = ( $1, $2, pos );
my $len = length $val;
(my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge;
if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) {
$tmp_val = eval $tmp_val;
$var{$id} = $val = $tmp_val unless $@;
}
substr $_, $pos - $len, $len, $val;
pos = $pos - $len + length $val;
}
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
#!/usr/bin/perl -p
use strict;
use warnings;
use vars qw(%var);
while ( /([A-Z][0-9]*)=(\S+)|T\d{3}(\d\d)\d/g ) {
my( $id, $val, $t_expr, $pos ) = ( $1, $2, $3, pos );
if ( defined $t_expr ) {
$var{'R10'} = $t_expr;
next;
}
while ( /([A-Z][0-9]*)=(\S+)/g ) {
if ( substr($_,0,1) eq '(' ) {
next;
}
my( $id, $val, $pos ) = ( $1, $2, pos );
my $len = length $val;
(my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge;
if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) {
$tmp_val = eval $tmp_val;
$var{$id} = $val = $tmp_val unless $@;
}
substr $_, $pos - $len, $len, $val;
pos = $pos - $len + length $val;
}
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
#!/usr/bin/perl -p use strict; use warnings; use vars qw(%var); while ( /([A-Z][0-9]*)=(\S+)|T\d{3}(\d\d)\d/g ) { my( $id, $val, $t_expr, $pos ) = ( $1, $2, $3, pos ); if ( defined $t_expr ) { $var{'R10'} = $t_expr; next; } if ( substr($_,0,1) eq '(' ) { next; } my $len = length $val; (my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge; if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) { $tmp_val = eval $tmp_val; $var{$id} = $val = $tmp_val unless $@; } substr $_, $pos - $len, $len, $val; pos = $pos - $len + length $val; }
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
#!/usr/bin/perl -p use strict; use warnings; use vars qw(%var); while ( /([A-Z][0-9]*)=(\S+)|T\d{3,4}(\d\d)\d\D/g ) { my( $id, $val, $t_expr, $pos ) = ( $1, $2, $3, pos ); if ( defined $t_expr ) { $var{'R10'} = $t_expr; next; } if ( substr($_,0,1) eq '(' ) { next; } my $len = length $val; (my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge; if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) { $tmp_val = eval $tmp_val; $var{$id} = $val = $tmp_val unless $@; } substr $_, $pos - $len, $len, $val; pos = $pos - $len + length $val; }
QuoteR53=10
X=SIN(R53)+R53
QuoteM977(103,R79,20,300)
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
#!/usr/bin/perl -p use strict; use warnings; use vars qw(%var); while ( /([A-Z][0-9]*)=(\S+)|T\d{3,4}(\d\d)\d\D/g ) { my( $id, $val, $t_expr, $pos ) = ( $1, $2, $3, pos ); if ( defined $t_expr ) { $var{'R10'} = $t_expr; next; } if ( substr($_,0,1) eq '(' ) { next; } my $len = length $val; (my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge; if ( $tmp_val =~ /^[\d\*\/\+\(\-\(\).]+$/ ) { $tmp_val = eval $tmp_val; $var{$id} = $val = $tmp_val unless $@; } substr $_, $pos - $len, $len, $val; pos = $pos - $len + length $val; }
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
#!/usr/bin/perl -p use strict; use warnings; use vars qw(%var); while ( /([A-Z][0-9]*)=(\S+)|T\d{3,4}(\d\d)\d\D|([A-Z][0-9]*\()([^\)]+\))/g ) { my( $id, $val, $t_expr, $kstart, $kbody, $pos ) = ( $1, $2, $3, $4, $5, pos ); if ( defined $t_expr ) { $var{'R10'} = $t_expr; next; } if( defined $kstart ) { my $len=length($kstart.$kbody); $kbody=~s/([A-Z][0-9]*)/$var{$1}||''/ge; substr $_, $pos - $len, $len, $kstart.$kbody; pos = $pos - $len + length $kstart.$kbody; next; } if ( substr($_,0,1) eq '(' ) { next; } my $len = length $val; (my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge; if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) { $tmp_val = eval $tmp_val; $var{$id} = $val = $tmp_val unless $@; } substr $_, $pos - $len, $len, $val; pos = $pos - $len + length $val; }
QuoteM13(Z,R90+30+R50,X,R40+500,Y,10)
M13(Z,R30,X,R400+30,Y,10)
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
#!/usr/bin/perl -p use strict; use warnings; use vars qw(%var); while ( /([A-Z][0-9]*)=(\S+)|T\d{3,4}(\d\d)\d\D|([A-Z][0-9]*\()([^\)]+\))/g ) { my( $id, $val, $t_expr, $kstart, $kbody, $pos ) = ( $1, $2, $3, $4, $5, pos ); if ( defined $t_expr ) { $var{'R10'} = $t_expr; next; } if( defined $kstart ) { my $len=length($kstart.$kbody); # ')' am ende entfernen # $kbody an "," splitten # elemente bearbeiten # alles wieder zusammenfügen $kbody=~s/)$//; my @elements=split(/,/,$kbody); for my $elm (@elements); { $elm=~s/([A-Z][0-9]*)/$var{$1}||''/ge; if ( $elm =~ /^[\d\*\/\+\-\(\).]+$/ ) { $elm = eval $elm; } } $kbody=join(',',@elements).")"; substr $_, $pos - $len, $len, $kstart.$kbody; pos = $pos - $len + length $kstart.$kbody; next; } if ( substr($_,0,1) eq '(' ) { next; } my $len = length $val; (my $tmp_val = $val) =~ s/([A-Z][0-9]*)/$var{$1}||''/ge; if ( $tmp_val =~ /^[\d\*\/\+\-\(\).]+$/ ) { $tmp_val = eval $tmp_val; $var{$id} = $val = $tmp_val unless $@; } substr $_, $pos - $len, $len, $val; pos = $pos - $len + length $val; }
QuoteR1=15
R4=20
X=R1+R4
Y=R1*R4
M779(R4,R1,20)
M13(R1+R4,10,R4-R1)