Forum Webscript.Ru
Программирование => Perl => Тема начата: Unregistered от 26 Июля 2002, 13:38:38
-
Всем привет!
Народ подскажите, как в перле писать двоичные файлы, чтоб их содержимое с легкостью могла проанализировать С-программа? Про функцию binmode знаю, но она не работает почему-то, т.е. пишу число 4325345, оно записывается как текст, а нужно в двоичном виде.
И второй вопрос, как узнать сколько байт записывается?
Как записать конкретное число байт?
Спасибо.
-
Всем привет!
Народ подскажите, как в перле писать двоичные файлы, чтоб их содержимое с легкостью могла проанализировать С-программа? Про функцию binmode знаю, но она не работает почему-то, т.е. пишу число 4325345, оно записывается как текст, а нужно в двоичном виде.
И второй вопрос, как узнать сколько байт записывается?
Как записать конкретное число байт?
Спасибо.
З.Ы. А почему меня в игнор лист занесли?
-
Насколько я помню 1байт = 1 символ, дык организуй простеший цикл:
my $i;
my $bayt=300;#количество байт
my $symbol="1";#сивол, символизирующий один байт:-)
open FILE, "> file.txt";
if ($i<=$bayt){
print FILE $symbol;
$i++;}
close(FILE);
А почему меня в игнор лист занесли?
Видимо унрегистров выживают с форума:-), так что включи куки или запомни пароль:-).
-
C++
Поищи в доках sysopen,sysread,syswrite.
-
binmode всего лишь говорит Перлу, что символ конца строки нужно писать и читать как есть, без изменений. Для записи бинарных данных прочитай про pack/unpack. Например:
$num=453245;
print OUT pack("N",$num);
запишет ровно 4 байта (если OUT был в binmode открыт). У функции pack есть множество форматов записи чисел, выбери тот, который затем можно легко в Си распознать.
-
все равно нихера не выходит!!!
народ, может еще кто-нибудь знает другие способы?
-
open(X,">./file");
binmode(X);
print X pack("N*",4325345);
close X;
-
все равно нихера не выходит!!!
Выражаемся культурнее, да?
Предупреждение.
-
C++, ты зря на binmode() наежаешь - как я понял, ты просто её не туда тулишь.
-
to Serchey - огромное спасибо, все получилось и просто супер.
to Chs- это я так, сгоряча, просто сил моих уже не было, осознал, исправился.
-
From Serchey - незачто :)