Schrift
[thread]7541[/thread]

werte zählen

Leser: 1


<< >> 8 Einträge, 1 Seite
miki280
 2005-12-14 11:56
#60887 #60887
User since
2005-12-07
18 Artikel
BenutzerIn
[default_avatar]
hallo liebe Leute,
meine frage: es geht um die Werte zwischen | |.
ich möchte die gesamte Datei durchsuchen und als Ergebnis haben, wie oft die Zahl zwischen || vorkommt.
in diesem fall also: 1x7, 1x6, 1x3, 3x5!!

11649119 | 7 | 4608 1221 4637 701 7018 8220 21427
11649120 | 6 | 513 8220 3257 9121 8705 29334
11649121 | 3 | 7018 3356 26460
11649122 | 5 | 3741 701 7018 8220 28998
11649123 | 5 | 3741 701 7018 8220 35630
11649124 | 5 | 3741 701 7018 8220 21427
.......
....

hab schon versucht im forum was zu finden, hab ich aber nichts für mich(Newbie) verständliches gefunden! ;)

Vielen Dank!
Taulmarill
 2005-12-14 12:15
#60888 #60888
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
liess die datei zeilenweise aus und filtere den gesuchten wert heraus. dann nimmst du dir einen hash (ausserhalb der schleife deklarieren), benutzt die zu zälenden elemente als key und addierst 1.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Crian
 2005-12-14 12:30
#60889 #60889
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Und wenn dir diese Anleitung Rätsel aufgibt, schau dir mal die Einführung unter www.fabiani.net an.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
renee
 2005-12-14 12:39
#60890 #60890
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Noch ein Tipp zum lesen:

perldoc -f open
perldoc -f split
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/
miki280
 2005-12-14 14:24
#60891 #60891
User since
2005-12-07
18 Artikel
BenutzerIn
[default_avatar]
könnt ihr das etwas einfacher bzw. genauer formulieren?
also bevor diese Datei(siehe oben) erstellt wird ist die benötigte zahl in einer Variable namens $counter! hilft das weiter? :(
esskar
 2005-12-14 14:34
#60892 #60892
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wir nehmen an, du hast die datei schon zum Lesen geöffnet:

Code: (dl )
1
2
3
4
5
6
7
8
9
my %counter = ();
while(my $line = <FILE>) {
  chomp $line; # Zeilenende abschneiden
  my (undef, $digit, undef) = split /\s+\|\s+/, $line, 3; # Zeile in 3 Teile splitten ... uns kümmert nur der Mittelteil
  $counter{$digit}++;
}
close(FILE);

print join "\n", map { $counter{$_} . 'x' . $_ } keys %counter;
\n\n

<!--EDIT|esskar|1134563734-->
miki280
 2005-12-14 14:43
#60893 #60893
User since
2005-12-07
18 Artikel
BenutzerIn
[default_avatar]
danke! hab ich nun geschaft!!!
Crian
 2005-12-20 16:57
#60894 #60894
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Das war etwas kontraproduktiv... denn den Code hätte der OP nach Lesen der angegebenen Quellen auch selbst schreiben können und hätte dabei wesentlich mehr gelernt.

Da hatte er doch nun schon drei Angeln in der Hand und es schenkt ihm trotzdem wer nen Fisch *seufz*.\n\n

<!--EDIT|Crian|1135090684-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 8 Einträge, 1 Seite



View all threads created 2005-12-14 11:56.