Guten Abend!
Ich bin gerade dabei, verschiedene Messdaten als Input-Dateien fuer ein Simulationsprogramm zusammenzustellen. Dieses ist in VisualBasic geschrieben [ ICH war's nich! :-) ] und "will" diese Dateien im binaeren Format.
Hat von Euch jemand ein Skript bei der Hand, das mir die ASCII-Textfiles (mit Messdaten in Spalten, durch Leerzeichen getrennt) in binaere Textfiles umwandeln koennte? Das geht doch bestimmt irgendwie mit Perl ... *schmunzel*
Vielen Dank fuer Eure Bemuehungen im voraus!
/Sven.
* Sven Wahl schrieb am 31.Jan.2003:
Ich bin gerade dabei, verschiedene Messdaten als Input-Dateien fuer ein Simulationsprogramm zusammenzustellen. Dieses ist in VisualBasic geschrieben [ ICH war's nich! :-) ] und "will" diese Dateien im binaeren Format.
Hat von Euch jemand ein Skript bei der Hand, das mir die ASCII-Textfiles (mit Messdaten in Spalten, durch Leerzeichen getrennt) in binaere Textfiles umwandeln koennte? Das geht doch bestimmt irgendwie mit Perl ... *schmunzel*
Was ist ein binäres Textfile?
Bernd
Hallo,
On Fri, 31 Jan 2003, Sven Wahl wrote:
Ich fand den Begriff anfangs auch ziemlich verwirrend. Ich nahm folgendes an:
ASCII-Text: zum Beispiel dieser
"binaerer Text": 1101001101000000001 ...usw.
Ahso. Folgendes sollte machen was du willst.
==== liest nur von der Standardeingabe ==== #!/usr/bin/perl -nw use strict; chomp; my @l=split(""); foreach(@l) { print unpack('B*', pack 'A*', $_), " "; } END { print "\n"; } =====
$ echo 'binärer Text ?' | /tmp/test/ascii2binaerstring.pl 01100010 01101001 01101110 11100100 01110010 01100101 01110010 00100000 01010100 01100101 01111000 01110100 00100000 10100100 $ { echo 'ibase=2;'; echo 'binärer Text ?' | /tmp/test/ascii2binaerstring.pl | sed 's/ /;/g'; } | bc | xargs echo 98 105 110 228 114 101 114 32 84 101 120 116 32 164
Wie man sieht wurde z.B. das ä als 228 (dec) kodiert, Leerzeichen als 32 und der Euro als 164.
Je nachdem ob du zwischen den Bytes ein Leerzeichen willst oder nicht, musst du das ', " "' am Ende des 'print' Befehls aendern bzw. weglassen. Auch das "END" musst du ggfs. ersetzen, je nach dem, wie die Ausgabe aussehen soll. Wenn du nach jeder Zeile der Eingabe ein Zeilenumbruch erfolgen soll, fuege statt dem 'END {}' nur das 'print "\n";' ein...
-dnh
Hallo,
On Sat, 01 Feb 2003, David Haller wrote:
On Fri, 31 Jan 2003, Sven Wahl wrote:
Ich fand den Begriff anfangs auch ziemlich verwirrend. Ich nahm folgendes an:
ASCII-Text: zum Beispiel dieser
"binaerer Text": 1101001101000000001 ...usw.
Ahso. Folgendes sollte machen was du willst.
==== liest nur von der Standardeingabe ==== #!/usr/bin/perl -nw use strict; chomp; my @l=split(""); foreach(@l) { print unpack('B*', pack 'A*', $_), " "; } END { print "\n"; } =====
Gegenrichtung:
==== #!/usr/bin/perl -nw use strict; chomp; my @l=split(" "); foreach(@l) { print unpack("a*", pack("B*", $_)); } END { print "\n"; } ====
-dnh
Moin,
* Sven Wahl x1svewah@ulmo.stud.slu.se [2003-01-31 20:20]:
Was ist ein binäres Textfile?
Ich fand den Begriff anfangs auch ziemlich verwirrend. Ich nahm folgendes an:
ASCII-Text: zum Beispiel dieser
"binaerer Text": 1101001101000000001 ...usw.
Hast Du das mal überprüft? Ich bin bei meiner Antwort davon ausgegangen, daß eher Zahlen das Problem sind, die von ASCII in eine binaäre Darstellung umgewandelt werden sollen: ASCII: ab12 Binär: 01100001 01100010 00000001 00000010
Thorsten
Hallo David & Thorsten!
Vielen Dank fuer Eure Tipps, und Dir, David, fuer das Perl-Skript.
- Sven Wahl x1svewah@ulmo.stud.slu.se [2003-01-31 20:20]:
Was ist ein binäres Textfile?
Ich fand den Begriff anfangs auch ziemlich verwirrend. Ich nahm folgendes an:
ASCII-Text: zum Beispiel dieser
"binaerer Text": 1101001101000000001 ...usw.
On Saturday 01 February 2003 12:28, Thorsten Haude wrote:
Hast Du das mal überprüft? Ich bin bei meiner Antwort davon ausgegangen, daß eher Zahlen das Problem sind, die von ASCII in eine binaäre Darstellung umgewandelt werden sollen: ASCII: ab12 Binär: 01100001 01100010 00000001 00000010
Das ist richtig. Es handelt sich um Messdaten der Form
12.34
Das Beste ist wahrscheinlich, wenn ich mir das Programm, welches die Daten letztendlich verarbeiten soll, am Montag erst einmal selbst anschaue ...
Schoenes Wochenende in der Zwischenzeit!
/Sven.
Hallo!
Am Freitag, 31. Januar 2003 19:36 schrieb Sven Wahl:
Hat von Euch jemand ein Skript bei der Hand, das mir die ASCII-Textfiles (mit Messdaten in Spalten, durch Leerzeichen getrennt) in binaere Textfiles umwandeln koennte? Das geht doch bestimmt irgendwie mit Perl ... *schmunzel*
Frag mich zwar, wie eine Textdatei binär sein kann, aber versuchs mal mit strfile. vielleicht macht es das, was du meinst
MfG Frank "Fraehngk" Lanitz
Moin,
* Sven Wahl x1svewah@ulmo.stud.slu.se [2003-01-31 19:36]:
Ich bin gerade dabei, verschiedene Messdaten als Input-Dateien fuer ein Simulationsprogramm zusammenzustellen. Dieses ist in VisualBasic geschrieben [ ICH war's nich! :-) ] und "will" diese Dateien im binaeren Format.
Hat von Euch jemand ein Skript bei der Hand, das mir die ASCII-Textfiles (mit Messdaten in Spalten, durch Leerzeichen getrennt) in binaere Textfiles umwandeln koennte? Das geht doch bestimmt irgendwie mit Perl ... *schmunzel*
Ja, das geht bestimmt in Perl, ist aber nicht trivial. Einfacher ist es vielleicht in VBA, weil Du dann schon die Datentypen 'kennst'.
Ansonsten würde ich einen hungrigen Studenten suchen und Geld bieten.
Thorsten