Häufigkeit von Zeichgen "gut formatiert" ausgeben
Franky
- perl
Hallo,
ich habe einen Roman in digitaler Form in einer Textdatei, wo ich nun die Zeichenhäufigkeit der einzelnen Zeichen ermitteln möchte.
Die Ausgabe soll in einer Liste erfolgen, wo alle ASCII-Zeichen Aufgelistet werden. Ist eins von den Zeichen auch in dem TExt vorhanden steht dort hinter die Häufigkeit.
Diesen Code habe ich entwickelt:
<code>
my $kapitel = "";
open(GEDICHT, "<Stechlin-01.txt") || die "Das Gedicht wurde nicht gefunden\n";
undef $INPUT_RECORD_SEPARATOR; # satzweises Lesen unterdrücken
$kapitel = <GEDICHT>; # Eingabedatei wird vollständig in
# diese Zeichenkette eingelesen
close(GEDICHT);
my $laenge = length($kapitel);
my %haeufig = ();
for(my $i=0; $i<$laenge; $i++) {
my $tmp = chop($kapitel);
$haeufig{$tmp} += 1;
}
my $anzahl = "";
for(my $i=0; $i<=255; $i++) {
my $tmp = chr($i);
if($haeufig{$tmp}) {
$anzahl = $haeufig{$tmp};
}
else {
$anzahl = "";
}
#print $hallo . "\n";
my $ASCII_Zeichen = chr($i);
print sprintf("%#2x", $i) . " " . $ASCII_Zeichen . ": " . $anzahl . "\t\t";
if($i%4==0) {
print "\n";
}
}
</code>
Es funktioniert soweit alles, bis auf das die Ausgabe nicht, da einige Steuerzeichen die Ausgabe "verunstalten".
Wie muss ich den sprintf Aufruf anders tätigen, damit alles ordentlich formatiert ausgegeben wird?
Danke
hi,
Es funktioniert soweit alles, bis auf das die Ausgabe nicht, da einige Steuerzeichen die Ausgabe "verunstalten".
Wie muss ich den sprintf Aufruf anders tätigen, damit alles ordentlich formatiert ausgegeben wird?
Na ja, Steuerzeichen eben nicht ausgeben - stattdessen vielleicht den nummerischen ASCII-Wert des Zeichens? ord() o.ä. sollte es wohl auch in Perl geben, und kurzes googlen bringt mich zu der Erkenntnis, dass es das, was ich in PHP für das herausfinden der "Art" des Zeichens wohl auch als Perl-Modul gibt - nämlich Ctype.
gruß,
wahsaga
Bei mir findet der aber kein Ctype.
Wir benutzt ich das denn dann?
Habe gegooglet aber es nicht hinbekommen.
Wäre nett wenn mir das jemand erklären könnte.
Danke
Hell-O!
Bei mir findet der aber kein Ctype.
Das ist ja auch etwas PHP-spezifisches (siehe http://php.net/ctype).
Wir benutzt ich das denn dann?
Was willst du denn genau? Möchtest du die Steuerzeichen mitzählen oder eliminieren? Falls du sie mitzählen möchtest, kannst du ihren ASCII-Wert mit ord ermitteln und ausgeben und würdest den Zeichen so ihre Funktionalität nehmen.
Siechfred
hi,
Bei mir findet der aber kein Ctype.
Das ist ja auch etwas PHP-spezifisches (siehe http://php.net/ctype).
Ich wieß ja extra darauf hin.
Und auch, dass es sowas als Extension auch für Perl gibt.
gruß,
wahsaga
Was willst du denn genau? Möchtest du die Steuerzeichen mitzählen oder eliminieren? Falls du sie mitzählen möchtest, kannst du ihren ASCII-Wert mit ord ermitteln und ausgeben und würdest den Zeichen so ihre Funktionalität nehmen.
Siechfred
Dies ist der erste Teil der Ausgabe den mein Programm im Moment erzeugt: http://bff.g1studio.com/kiki/zeichen.jpg
Das Problem ist halt das bei den oberen Zeichen die Steuerzeichen die Ausgabe unschön aussehen lassen. Möchte das Alles gleich aussieht.
Weiss nicht wie ich da mit ord() und CType weiter kommen soll.
Hell-O!
Dies ist der erste Teil der Ausgabe den mein Programm im Moment erzeugt: http://bff.g1studio.com/kiki/zeichen.jpg
Ah, danke.
Das Problem ist halt das bei den oberen Zeichen die Steuerzeichen die Ausgabe unschön aussehen lassen. Möchte das Alles gleich aussieht.
Dann lasse die ASCII-Darstellung der Steuerzeichen doch weg oder nenne sie beim Namen. Für die Optik könntest du dir mal format ansehen.
Siechfred