Мне нужно поменять текст в байтах. Я абсолютно ничего не знаю о perl, но я нашел отлично работающий фрагмент кода в perl под названием moz-byteshift.pl (documentation). Это делает именно то, что я хочу сделать, но мне нужно сделать это на C#.Справка по смещению байтов
Вот исходный код файла PERL:
#!/usr/bin/perl
# To perform a byteshift of 7
# To decode: moz-byteshift.pl -s -7 <infile >outfile
# To encode: moz-byteshift.pl -s 7 <infile >outfile
# To perform a byteshift of 13
# To decode: moz-byteshift.pl -s -13 <infile >outfile
# To encode: moz-byteshift.pl -s 13 <infile >outfile
use encoding 'latin1';
use strict;
use Getopt::Std;
use vars qw/$opt_s/;
getopts("s:");
if(!defined $opt_s) {
die "Missing shift\n";
}
my $buffer;
while(1) {
binmode(STDIN, ":raw");
my $n=sysread STDIN, $buffer, 1;
if($n == 0) {
last;
}
my $byte = unpack("c", $buffer);
$byte += 512 + $opt_s;
$buffer = pack("c", $byte);
binmode(STDOUT, ":raw");
syswrite STDOUT, $buffer, 1;
}
Если кто-то мог бы по крайней мере объяснить, как работает скрипт на Perl, это было бы здорово. Пример кода эквивалента в C# будет лучше. =)
Спасибо за помощь.
Я не понимаю. Если, как вы говорите в одном комментарии, вы действительно не знаете, что делает скрипт perl, откуда вы знаете, что это то, что вы хотите сделать? – ysth
Этот скрипт используется сотрудником для выполнения функции, которую я теперь должен реализовать. Вот как. –