Leser: 22
cat file.bin file2.bin >> file3.bin
1
2
3
4
5
6
7
open my $FH ,'+>', '/tmp/file3.bin' or die $!;
binmode $FH , ':raw';
copy 'file1.bin' , \$FH or die $!;
copy 'file2.bin' , \$FH or die $!;
close $FH or die $!;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
use warnings; use strict; open(my $fh_1, '>>:raw', 'file1.bin'); open(my $fh_2, '<:raw', 'file2.bin'); my $buffer; my $bufsize = 32768; my $copied; while (1) { $copied = read $fh_2, $buffer, $bufsize; last if ! $copied; print $fh_1 $buffer; }
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
use warnings; use strict; my @binfiles = qw( file1.bin file2.bin file3.bin ); open(my $fh_out, '>>:raw', 'outfile.bin'); my $buffer; my $bufsize = 32768; my $copied; for my $file (@binfiles) { open(my $fh_in, '<:raw', $file); READDATA: while (1) { $copied = read $fh_in, $buffer, $bufsize; last READDATA if ! $copied; print $fh_out $buffer; } close($fh_in); }
2011-03-21T10:00:45 mark05liege ich da im groben richtig mit oder gibt es alternativen
print $fh pack "N", $anzahl; # schreibt 4 bytes
print $fh pack "N", length $file01;
1
2
3
4
my $i = 1464816196;
printf "Big Endian: %s, Little Endian: %s\n", pack("N", $i), pack("V", $i);
# Big Endian: WORD, Little Endian: DROW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use IO::File;
my $fh = IO::File->new();
my @files = qw(001.ts 002,ts 003.ts);
open $fh , '>' , 'completefile.ts' or die $!;
binmode $fh,':raw';
foreach my $f (@files) {
open my $read , '<' , $f or die $!;
binmode $read,':raw',
print {$fh} length $read;
while (<$read>) {
print {$fh} $_;
}
close $read or die $!;
}
close $fh or die $!;
2011-03-22T10:59:56 mark05uppps verwirrt ist .
ich moechte nix backup´en ... es geht darum aufnahme dateien vom vdr , er stueckelt waehren der aufnahme , zu einer grossen zusammen zufuehren.
da das daten sind die stream sind ist es wichtig das diese wirklich bitweise zusammen kommen da es sonst probleme mit audio und oder video
wiedergabe gibt.
$fh_in = new IO::File "file", O_RDONLY|O_BINARY;
$fh_out = new IO::File "file", O_RDWR|O_BINARY|O_APPEND|O_CREAT;
2011-03-22T10:59:56 mark05Code (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 24use IO::File; my $fh = IO::File->new(); my @files = qw(001.ts 002,ts 003.ts); open $fh , '>' , 'completefile.ts' or die $!; binmode $fh,':raw'; foreach my $f (@files) { open my $read , '<' , $f or die $!; binmode $read,':raw', print {$fh} length $read; while (<$read>) { print {$fh} $_; } close $read or die $!; } close $fh or die $!;
waehre das ungerfaehr richtig ... ist ungetestet .
holger
2011-03-21T10:00:45 mark05hi
moechte bitweise dateien zusammen fuegen.
holger
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
#!/usr/bin/perl # Binary 'cat' für Dateien use warnings; use strict; # print-statements sofort ausgeben $| = 1; my $outfile = '/DeinPfad/DeinDateiname'; my @infiles = qw( file1 file2 file3 ); open(my $fh_out, '>:raw', $outfile) or die $!; my $buffer; my $bufsize = 32768; my $copied; for my $file (@infiles) { print "Bearbeite $file\n"; open(my $fh_in, '<:raw', $file) or die $!; while ($copied = read $fh_in, $buffer, $bufsize) { print $fh_out $buffer; } close($fh_in) or die $!; }
copy /b 0*.ts completefile.ts
2011-03-24T07:23:37 mark05@fifo ..... ne ganz neuling bin ich nicht mehr .... eher
'enhhanced rookie' ;)
Quoteby the way dein letztes beispiel kommt dem , wie ich mir fast gedacht habe
am naechsten . nur dass man wohl binmode nicht mehr braucht.
Quotewenn die source files von einem share kommen ( nfs oder cifs )
muss ich mir dann gedanken machen um das thema little/big endian ?
QuoteDu brauchst binmode! Nur dass das im open-statement integriert werden kann:
open(FH, '>', $file); binmode(FH); ist identisch zu open(FH,'>:raw', $file);, ab Perl 5.8.