Schrift
[thread]8432[/thread]

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



<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten
bloonix
 2006-10-19 16:52
#70965 #70965
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=sabrina,19.10.2006, 14:39]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?[/quote]
Ja, darauf haben renee und ich wohl spekuliert... auf die Originalzeilen,
die zu Beginn der ganzen Operation bearbeitet werden sollen.

Aber wenn du versuchst, unsere Beispiele zu verstehen, dann sollte es
soweit kein Problem sein, dein Skript anzupassen und alles in ein paar
Schritten zu realisieren... versuchs doch mal auf eigene Faust... =)
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 17:06
#70966 #70966
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
hab ich doch schon zum beispiel: ich weis ich muss, wenn ich irgendwo was einfügen will, dann nachdem das xa0 entfernt wurde und vor dem print. Da gibt es ja nicht alzu viele Möglichkeiten.
Also hab ich folgenden CODE:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/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;
$line[-2] /= 1024;  #kann ich einfach 2 für das vorletzte schreiben?
print $write_fh $line;
}
close $fh;
}
close $write_fh or die $!;

eigendlich müsste das doch jetzt gehen jetzt ist es allerdings nicht mehr die letzte spalte sondern die Vorletzte.
kannst du mir sagen ob ich auf dem Holzweg bin oder schonmal die richtige spur hab und ich ihn nur an die falsche stelle gesetzt habe?
das würde mir schon reichen.
Die fehlermeldung ist übrigens:
Code: (dl )
Global symbol "@line" requires explicit package name at BLUBBER5.pl line 14

lg sabrina\n\n

<!--EDIT|sabrina|1161263672-->
bloonix
 2006-10-19 17:26
#70967 #70967
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Na schau dir deinen Code nochmal an...

$line ist ein Skalar und kein Array...

Das hier ... $line[-2] ... geht also nicht! =)
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 17:41
#70968 #70968
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
das hatte ich schon und dann bekam ich folgende Fehlermeldung:
Code: (dl )
1
2
Scalar value @line[-2] better written as $line[-2] at BLUBBER5.pl line 11.
Global symbol "@line" requires explicit package name BLUBBER5.pl line 11.

und deshalb hab ich es scalar wieder geschrieben!
spinnt meine warnanzeige?
lg sabrina
bloonix
 2006-10-19 19:35
#70969 #70969
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=sabrina,19.10.2006, 15:41]und deshalb hab ich es scalar wieder geschrieben![/quote]
Nun gut, dann fangen wir also wieder bei Null an... auch ok!

Perldoc:Perlintro (Perl variable types)
Perlintro (Perls Variablen-Typen)

Auf englisch oder auf deutsch... was dir lieber ist.\n\n

<!--EDIT|opi|1161272168-->
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-20 12:57
#70970 #70970
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
danke opi hatte die seite zwar schon mal gelesen aber das auffrischen tat doch gut, jedoch hab ich nichts zu meinem Problem gefunden jedenfalls nicht auf den deutschen Seiten.
EDIT:
Kann es sein das fast genau der gleiche text auch unter
http://www.perlmongers.de/?perlintro

Hast du noch mehr lesenswertes?
Immer her damit!
Vielleicht find ich doch noch irgendwo was zu meinem problem,

lg sabrina\n\n

<!--EDIT|sabrina|1161335513-->
renee
 2006-10-20 13:10
#70971 #70971
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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
#!/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; my @array = (split /[\t\s\\]+/, $line)[0..7];
my $x = pop @array;
if ($x =~ /\./) {
pop @array;
my $y = pop @array;
$array[-2] .= $y;
}
else {
pop @array;
pop @array;
}
$array[-2] = sprintf('%.3f', $array[-1] / 1024);
print $write_fh join(';',@array);
}
close $fh;
}
close $write_fh or die $!;
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/
pq
 2006-10-20 13:25
#70972 #70972
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=sabrina,19.10.2006, 15:06]
Code: (dl )
1
2
3
while(my $line = <$fh>){
$line =~ tr/\xa0//d;
$line[-2] /= 1024;  #kann ich einfach 2 für das vorletzte schreiben?
[/quote]
du hast in $line einen string stehen, nämlich deine zeile.
dann versuchst du auf das zweitletzte element des arrays @line
zuzugreifen. erstens hast du aber gar kein array @line definiert,
und zweitens, falls du versuchst, da einen zusammenhang mit der zeile
$line herzustellen - da gibt es keinen.
wie soll perl aus einem string ein array machen?
wenn du auf einzelne stellen des strings zugreifen willst, nimmst du
dafür substr(). oder du musst selbst ein array draus machen, z.b. mittels
split. aber hellsehen kann perl nicht (obwohl man manchmal den eindruck hat).\n\n

<!--EDIT|pq|1161336393-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
sabrina
 2006-10-20 13:39
#70973 #70973
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
ich bekomme keine ausgabe sondern eine fehlermeldung die so lautet:
Code: (dl )
syntax error at BLUBBER5.pl line 15, near ".="

Kann man das noch anders schreiben?
Er mag wohl die [-2] nicht oder wie seh ich das?
lg sabrina

@pq das da ein "@" und kein "$" stehen muss wusste ich schon danke dann hab ich es geändert da perl sagte ich solle es lieber mit $ schreiben und da perl sich damit auskennen
müsste dachte ich ich folge den anweisungen steht aber schon weiter oben, den opi hat mich schon darauf hingewiesen aber danke werde es mir merken!

@renee wieso schreibst du jetzt auch $array[-2]
wenn es doch @array[-2] heissen soll?\n\n

<!--EDIT|sabrina|1161337707-->
renee
 2006-10-20 13:45
#70974 #70974
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Da hast Du was falsches abgetippt. Ein perl -c skript.pl ergibt mit obigem Code ein skript.pl syntax OK


//Modedit Gwendragon: Tag repariert\n\n

<!--EDIT|GwenDragon|1161338979-->
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/
<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten



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