From f08f2d0e3798ff90b7e68c46751e15b7b991a2a0 Mon Sep 17 00:00:00 2001 From: Martin Talarczyk Date: Fri, 13 Nov 2015 12:17:15 +0100 Subject: Commitel Aufgabe 1 bis 4 --- Aufgabe2/ZeichenZaeler.pl | 87 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Aufgabe2/ZeichenZaeler.pl (limited to 'Aufgabe2/ZeichenZaeler.pl') diff --git a/Aufgabe2/ZeichenZaeler.pl b/Aufgabe2/ZeichenZaeler.pl new file mode 100644 index 0000000..e4aeaec --- /dev/null +++ b/Aufgabe2/ZeichenZaeler.pl @@ -0,0 +1,87 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: ZeichenZaeler.pl +# +# USAGE: ./ZeichenZaeler.pl +# +# DESCRIPTION: Zählt die häufichkeit der Zeichen in einem Text. +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Martin Talarczyk (MT), talarczyk.martin@fh-swf.de +# ORGANIZATION: FH Südwestfalen, Iserlohn +# Matrikel-Nr.: 10036162 +# VERSION: 1.0 +# CREATED: 22.10.2015 09:26:40 +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use utf8; +use English; + +binmode (STDIN, ":encoding(UTF-8)"); +binmode (STDOUT, ":encoding(UTF-8)"); +binmode (STDERR, ":encoding(UTF-8)"); +use open ":encoding(UTF-8)"; + + +# suppress line reading +my $old_INPUT_RECORD_SEPARATOR = $/; +undef $INPUT_RECORD_SEPARATOR; + +my $chapter_file_name = 'Stechlin-01.txt'; # input file + +printf "Zweck : Auszählung der Buchstabenhäufigkeiten\n\n"; + +#open file +open my $chapter, '<', $chapter_file_name + or die "$0 : failed to open input file '$chapter_file_name' : $!\n"; + +printf "Eingabedatei : %s\n\n", $chapter_file_name; + +printf "Tabelle der Zeichenhäufigkeiten :\n\n"; + +my $kapitel = <$chapter>; + +my %haeufig; +my $zelen = 0; + +while (my $char = chop $kapitel) +{ + if ($char eq "\n") + { + $zelen++; + + next; + } + $haeufig{$char}++; +} + +close $chapter + or warn "$0 : failed to close input file '$chapter_file_name' : $!\n"; +#close file + + +my $count = 0; +my $countChars = 0; + +foreach my $char (sort keys %haeufig) +{ + $count++; + $countChars += $haeufig{$char}; + printf "%5s = %5d", $char, $haeufig{$char}; + if($count % 3 == 0) + { + printf "\n"; + } +} + +printf "\n\n%5d Zeichen\n", $countChars; +printf "%5d Zeilenvorschübe\n", $zelen; +printf "%5d Zeichen insges.", $countChars + $zelen; + -- cgit v1.2.3-70-g09d2