Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8432[/thread]

letzte Spalte in jeder zeile ändern: die zahlen durch best. zahl teilen (Seite 4)



<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten
bloonix
 2006-10-19 14:51
#70955 #70955
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Der Teil

=file ./BLUBBER.txt
bis
=cut

ist nichts weiter als ein Kommentar im POD Format.

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
use strict;
use warnings;

open my $in, '<', './BLUBBER.txt' or die $!;
open my $out, '>', './ZIEL_NEU.txt' or die $!;

while (defined (my $line = <$in>)) {
  my @array = (split /[\t\s\\]+/, $line)[0..7];
  my $x = pop @array;
  if ($x =~ /\./) {
     pop @array;
     my $y = pop @array;
     $array[-1] .= $y;
  } else {
     pop @array;
     pop @array;
  }
  $array[-1] = sprintf('%.3f', $array[-1] / 1024);
  print $out join(';', @array), ":50\n";
}

close $out or die $!;
close $in or die $!;


Das ist ein neues Skript... versuch es mal... dabei solltest du aber zwei
Dinge beachten...

1. pass die Zieldatei an, falls sie schon existiert
2. ab 100 MB funktioniert das Skript wohl nicht mehr\n\n

<!--EDIT|opi|1161255238-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2006-10-19 14:53
#70956 #70956
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Der Abschnitt =file bis =cut soll nur verdeutlichen, was opi in seiner BLUBBER.txt stehen hat. Das kannst Du aus dem Code löschen!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sabrina
 2006-10-19 15:22
#70957 #70957
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
hab dein Code in mein script in das zweite open geschrieben, aber ich bekomme die gleiche ausgabe wie mit dem code einzeiler von renee.
mein code sieht jetzt so aus
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/perl
use warnings;
use strict;
my @data;
open(FH,"<BLUBBER.txt") or die $!;              
while(my $line = <FH>) {              
chomp $line;              
my @array = (split(/[\t\s\\]/,$line));  
foreach (@array) {
    s/^\s+/;/g;                    
    s/\s+$/;/g;          
} # foreach
if ($line =~/\bBLUBB|SAND?\b/ and $line !~/\bMUSCHEL\b/){
push(@data,[@array]);
} # if
} # while
close (FH);
my $format = '';
for my $i(0..scalar(@{$data[0]})-1){        
my $max = find_longest(map{$_->[$i]}@data);
$format .= '%-'.$max.'s ';
}
for my $entry(@data){
print sprintf($format . " \n",@$entry);
}
open(FH,"<BLUBBER.txt") or die $!;              
  open(OUTDATEN,">ZIELneu.txt") or die $!;
 while (defined (my $line = <$in>)) {
 my @array = (split /[\t\s\\]+/, $line)[0..7];
 my $x = pop @array;
 if ($x =~ /\./) {
    pop @array;
    my $y = pop @array;
    $array[-1] .= $y;
 } else {
    pop @array;
    pop @array;
 }
 $array[-1] = sprintf('%.3f', $array[-1] / 1024);
 print OUTDATEN join(';', @array), ":50\n";
}
close (OUTDATEN) or die $!;
close (FH) or die $!;

sub find_longest{                          
my $longest = 0;
for(@_){
    my $length = length($_);
    $longest = $length if($length > $longest);
}
return $longest;
}  

kann ich das so einfach ändern?
bekomme wieder 0.03125 ergebnisse
hab ich es falsch eingebaut?
lg sabrina\n\n

<!--EDIT|sabrina|1161257239-->
renee
 2006-10-19 15:26
#70958 #70958
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=opi,19.10.2006, 12:51][...]

Das ist ein neues Skript... versuch es mal... dabei solltest du aber zwei
Dinge beachten...

1. pass die Zieldatei an, falls sie schon existiert
2. ab 100 MB funktioniert das Skript wohl nicht mehr[/quote]
Zu 2.: Wie meinst Du das?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sabrina
 2006-10-19 15:32
#70959 #70959
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
meinst du mich
lg sabrina

EDIT nein du meinst opi\n\n

<!--EDIT|sabrina|1161257608-->
bloonix
 2006-10-19 15:45
#70960 #70960
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,19.10.2006, 13:26]Zu 2.: Wie meinst Du das?[/quote]
Das war eindeutig ein Rechenfehler von mir!

Die Größenangabe ist ja in KB, und ab 1_000_000 KB fängt eine neue
Spalte an, das ist zumindest meine Vermutung, da auch in der
BLUBBER.txt die 100er durch Leerzeichen getrennt sind.
1_000_000 KB sind allerdings schon fast 1 GB und nicht 100 MB. =)

Das Skript ist also nur bis 999 999 KB zu gebrauchen.

Danke für deine Aufmerksamkeit renee!\n\n

<!--EDIT|opi|1161259168-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
sabrina
 2006-10-19 15:49
#70961 #70961
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
also wenn ich 999999/1024  rechne sind das 976.5615234 MB oder?
Dann hab ich ohl ein problem den eine kunde darf 1GB haben
er hat zwar erst 948 726 aber was wenn er die überschreittet viel fehlt ja nicht mehr.
lg sabrina\n\n

<!--EDIT|sabrina|1161259010-->
bloonix
 2006-10-19 15:52
#70962 #70962
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=sabrina,19.10.2006, 13:22]hab ich es falsch eingebaut?[/quote]
Oops... das war nicht zum Einbauen gedacht. Es ist ein komplettes
Beispielskript. Es liest aus der BLUBBER.txt und schreibt das Ergebnis in
Form von

Bernstätter;Roswita;BLUBB;string;65.151:50
Gehring;Sabrina;BLUBB;string;31.266:50
Heizmann-Bayer;Dorothea;BLUBB;string;11.743:50
Zeile-mit-KB;kleiner-100;BLUBB;string;0.012:50


nach ZIEL_NEU.txt. Da ist kein Match auf BLUBB|SAND|MUSCHEL und
auch kein find_longest().\n\n

<!--EDIT|opi|1161258942-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
sabrina
 2006-10-19 16:09
#70963 #70963
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
also hab es jetzt als einzel script geschrieben und zwar so :
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
#!/usr/bin/perl
use warnings;
use strict;
open(FH,"<BLUBBER.txt") or die $!;
open(OUTDATEN,">ZIELneu.txt") or die $!;
while (defined (my $line = <$in>)) {
my @array = (split /[\t\s\\]+/, $line)[0..7];
my $x = pop @array;
if ($x =~ /\./) {
pop @array;
my $y = pop @array;
$array[-1] .= $y;
} else {
pop @array;
pop @array;
}
$array[-1] = sprintf('%.3f', $array[-1] / 1024);
print OUTDATEN join(';', @array), ":50\n";
}
close (OUTDATEN) or die $!;
close (FH) or die $!;

sub find_longest{
my $longest = 0;
for(@_){
my $length = length($_);
$longest = $length if($length > $longest);
}
return $longest;
}

immer noch gleicher fehler mit dem 0.03125 und dazu stehe auch noch alle datensätze in der datei und es wird nicht mehr gematcht nach BLUBB und sand so wie du gesagt hast. und jetzt?
lg sabrina
sabrina
 2006-10-19 16:39
#70964 #70964
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
schlechte lösung da jetzt alle manipulationen die mich so viel zeit gekostet haben unbrauchbar sind.
wieso schreib ich es nicht einfach in das andere script, in dem ich alle dateien zusammen fasse?
hier der normale code
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;
my @files = qw(BLUBBER1.txt BLUBBER2.txt BLUBBER3.txt BLUBBER4.txt);
my $OUTPUT = 'ZIELgesamt.txt';
open(my $write_fh, '>', $OUTPUT) or die $!;
for my $file(@files){
open(my $fh,'<',$file) or die $!;
while(my $line = <$fh>){
$line =~ tr/\xa0//d;
print $write_fh $line;
}
close $fh;
}
close $write_fh or die $!;

die Input daten sind:
Code: (dl )
Gehring;Sabrina;BLUBB;ge3fr;32 016;50

kann man damit vielleicht besser arbeiten da die zahlen im Script von dem xa0 (leerstelle)befreit werden?
hab schon probiert renees einzeiler einzu bauen jedoch ohne erfolg?
lg sabrina
<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten



View all threads created 2006-10-18 18:37.