Schrift
[thread]8181[/thread]

addieren



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Annka
 2006-07-19 15:29
#68256 #68256
User since
2006-07-18
43 Artikel
BenutzerIn
[default_avatar]
hallo,
ich habe ein neues problem.
Ich muss diesmal nicht eine Zeile von links nach rechts bearbeiten (das kann ja jetzt schon ;)) , sondern
ich möchte eine spalte bearbeiten. in dieser spalte sind zahlen untereinander geschrieben. aus diesen zahlen möchte ich die kleinste herausfinden.
bis jetzt kann ich mir nur die spalten herausschreiben und dann stehen sie in $split[..je nachdem welche spalte..] drin.

und nun weiß ich nicht wie ich diese zahlen bearbeiten kann bzw. untersuchen oder sonstiges ...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
push(@dritte_Zeile, "\t \t");
push(@dritte_Zeile, "Minimum \n");

while (<$fh>)
{

my @split = split(/,/, $_);
print "$split[3]\n"; #da steht dann beispielsweise
spalte drei drin

}
\n\n

<!--EDIT|renee|1153309328-->
GwenDragon
 2006-07-19 15:47
#68257 #68257
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
Beispiel für Spalte 3:
Code: (dl )
1
2
3
4
5
6
7
my %spalten;
while (<$fh>)
{
  my @split = split(/,/, $_);
  $spalten{3} = [] if not defined $spalten{3}; # Falls noch kein Array gespeichert
  push (@{$spalten{3}}, $split[3] );    #ein Wert von Spalte 3 drin
}
(ohne Gewähr)\n\n

<!--EDIT|GwenDragon|1153309847-->
Annka
 2006-07-19 15:56
#68258 #68258
User since
2006-07-18
43 Artikel
BenutzerIn
[default_avatar]
wie kann ich dass dann mit print ausgeben?
GwenDragon
 2006-07-19 16:17
#68259 #68259
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
foreach my $wert ( @{$spalten{3}} ) {
 print "$wert\n";
}
print "2. Wert aus Spalte 3", $spalten{3}->[1];
\n\n

<!--EDIT|GwenDragon|1153311610-->
GwenDragon
 2006-07-19 16:21
#68260 #68260
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
Falls was nicht passt, ich habe heute leider Wettermigräne, Fehler bitte also verzeihen.
renee
 2006-07-19 22:03
#68261 #68261
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich plädiere mal wieder für CPAN:DBI mit CPAN:DBD::CSV! Damit lässt sich sehr einfach der niedriegste Wert einer Spalte herausfinden:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my $dbh = DBI->connect("DBI:CSV:f_dir=.;csv_sep_char=\\;") or die $DBI::errstr;
my $select = q~SELECT min(Spalte1) FROM csvfile~;
my $sth = $dbh->prepare($select) or die $dbh->errstr();
$sth->execute() or die $dbh->errstr();

my ($min) = $sth->fetchrow_array();
print $min;


csvfile
Code: (dl )
1
2
3
4
Spalte1;Spalte2;Spalte3
12;hallo;3
10;test;muster
19;mann;frau


Ausgabe:
Code: (dl )
1
2
C:\>perl csv.pl
10


Unter Linux muss man noch csv_eol ändern...
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/
bloonix
 2006-07-20 00:36
#68262 #68262
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,19.07.2006, 20:03][/quote]
Code: (dl )
#!/usr/bin/perl


Code: (dl )
C:\>perl csv.pl


das schaut irgendwie komisch aus :)
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-07-20 10:16
#68263 #68263
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
warum?
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/
GwenDragon
 2006-07-20 11:42
#68264 #68264
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
[quote=opi,19.07.2006, 22:36][quote=renee,19.07.2006, 20:03][/quote]
Code: (dl )
#!/usr/bin/perl


Code: (dl )
C:\>perl csv.pl


das schaut irgendwie komisch aus :)[/quote]
Wieso? Geht doch unter WIndows.
Bei mir liegt Perl auch unter /usr/bin/ - nämlich X:\usr\bin.
Weitere Pfade sind: X:\bin;X:\usr\bin;X:\usr\local\bin;
So wie unter Linux ist es nachgebildet.
bloonix
 2006-07-20 16:53
#68265 #68265
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=GwenDragon,20.07.2006, 09:42]Wieso? Geht doch unter WIndows.[/quote]
Ich habe ja nicht behauptet, dass es nicht funktioniert.

So Windows-Linux mischmasch schaut eben komisch aus :)
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.
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2006-07-19 15:29.