#!/usr/bin/perl # # Usage: udo-parser.pl [DATEINAME] # liest von Textdatei oder stdin eine Datei in Udos favorisiertem Format, # nach dem Zeilen etwa so aussehen: # "[hexadezimal] # [dezimal]" # Pro Zeile ein Byte. # Gibt auf STDOUT den Bytestrom aus. # # Geschrieben 30.03.2008 21:00 # my $handler = STDIN; open($handler, '<', $ARGV[0]) if(@ARGV > 0); my $line=0; my $hex,$dec; while(<$handler>) { $line++; unless(/([0-9a-fA-F]{2})\s*#\s*([0-9]{1,3})/) { print STDERR "Zeile $line: Formatfehler! Überspringe Zeile $line...\n"; next; } $hex=$1; $dec=$2; if(hex $hex ne $dec) { print STDERR "Zeile $line: Hex($hex)/Dez($dec)-Angabe stimmen nicht überein (hex entspricht ",hex $hex,").\n"; print STDERR "Zeile $line: Nutze Dezimal-Angabe fuer Streifen\n"; } print pack("C", $dec); # ja das wars schon ;) }