Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5651[/thread]

Textdatei in Binärdatei umwandeln?

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
skontox
 2003-08-24 17:36
#79148 #79148
User since
2003-08-06
193 Artikel
BenutzerIn
[default_avatar]
Wie kann ich eine Textdatei in eine Binärdatei umwandeln?
Und umgekehrt?

Gruß skontox
Crian
 2003-08-24 17:48
#79149 #79149
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Das kommt ganz auf Dein Datenformat an. Was hast Du denn genau vor?
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
esskar
 2003-08-24 17:50
#79150 #79150
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=skontox,24.08.2003, 15:36]Wie kann ich eine Textdatei in eine Binärdatei umwandeln?
Und umgekehrt?

Gruß skontox[/quote]
hmm...
wenn du eine textdatei hast, in der echt nur text drin steht, kannst du sie einfach binaer lesen, und hast dadurch keinen datenverlust...
wenn du eine binaerdatei hast, kannst du diese nur als binaer lesen; wenn du sie als text liesst und speicherst, läufst du gefahr, daten zu verlieren...

also, wenn du eine binaer datei als textdatei speicherst, kommst du nicht mehr zur binaerdatei zurück...


du kannst es so machen


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/perl

use strict;

my $file1_in  = "text.txt";
my $file1_out = "text.bin";

my $file2_in  = "bine.bin";
my $file2_out = "bine.txt";

if(open(FILE1_IN,  "< $file1_in"))
{
   my $data = join "", <FILE1_IN>;
   close(FILE1_IN);

   if(open(FILE1_OUT, "> $file1_out"))
   {
      binmode(FILE1_OUT);
      syswrite(FILE1_OUT, $data);
      close(FILE1_OUT);
   }
}

if(open(FILE2_IN,  "< $file2_in"))
{
   binmode(FILE2_IN);
   my ($len, $off, $data, $buf) = (0, 0, "", undef);
   
   while($len = sysread(FILE2_IN, $buf, 1024, $off))
   {      
      $data .= $buf; $off += $len;
   }
   close(FILE1_IN);

   if(open(FILE2_OUT, "> $file2_out"))
   {
      print FILE2_OUT $data;
      close(FILE1_OUT);
   }
}
\n\n

<!--EDIT|esskar|1061733090-->
Crian
 2003-08-24 17:57
#79151 #79151
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
[quote=esskar,24.08.2003, 15:50]also, wenn du eine binaer datei als textdatei speicherst, kommst du nicht mehr zur binaerdatei zurück...[/quote]
Weil nämlich ggf. die Zeilenumbrüche - in Binärdatein u.U. mit völlig anderer Bedeutung - umgesetzt werden von einem in zwei Zeichen.\n\n

<!--EDIT|Crian|1061734300-->
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
esskar
 2003-08-24 18:03
#79152 #79152
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
nicht nur das...
die meisten programm sehen bei textdateien das zeichen, dessen ascii wert 0 ist (also \0), als dateiende...
das wars dann! :)\n\n

<!--EDIT|esskar|1061733833-->
Crian
 2003-08-24 18:12
#79153 #79153
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Ach ja stimmt...
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
skontox
 2003-08-24 18:15
#79154 #79154
User since
2003-08-06
193 Artikel
BenutzerIn
[default_avatar]
Danke erstmal!
Ich wollte eigentlich eine Textdatei in eine Binärdatei verschlüsseln!

Gruß skontox
jan10001
 2003-08-24 18:23
#79155 #79155
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Wenn du etwas mit Perl verschlüsseln möchtest, ist dieser Link bestimmt für dich interessant.

http://www.heise.de/ix/artikel/1999/10/166/
skontox
 2003-08-24 19:31
#79156 #79156
User since
2003-08-06
193 Artikel
BenutzerIn
[default_avatar]
Besten Dank Euch allen!

Gruß skontox (-:
Thorium
 2003-08-25 17:57
#79157 #79157
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Warum können sich die Leute nicht verständlich ausdrücken? :rock:
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2003-08-24 17:36.