Возможно вы искали: 'WarGames'

May 14 2025 04:07:18
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96088941
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18354
• Обзор The Walking ... 18797
• Обзор DMC: Devil M... 19876
• Обзор на игру Valk... 15874
• Обзор на игру Stars! 17761
• Обзор на Far Cry 3 17946
• Обзор на Resident ... 16023
• Обзор на Chivalry:... 17505
• Обзор на игру Kerb... 17980
• Обзор игры 007: Fr... 16617
Превью о играх
• Превью к игре Comp... 17957
• Превью о игре Mage... 14462
• Превью Incredible ... 14718
• Превью Firefall 13474
• Превью Dead Space 3 16332
• Превью о игре SimC... 14729
• Превью к игре Fuse 15440
• Превью Red Orche... 15541
• Превью Gothic 3 16342
• Превью Black & W... 17353
Главная » Статьи » Разное » Работа с бинарными файлами на Perl (perl binary example)

Работа с бинарными файлами на Perl (perl binary example)

Ключевые слова: perl, binary, example, (найти похожие документы)

Date: Wed, 6 Mar 2002 08:12:47 +0000 (UTC)
From: Artem Chuprina <ran@ice.ru>
Newsgroups: fido7.ru.cgi.perl
Subject: Работа с бинарными файлами на Perl

# Полагаем, что в $path хранится путь к файлу. Относительный или абсолютный -
# неважно, важно, чтобы по этому пути находился нужный файл

# my-переменные хороши тем, что по выходе из области видимости (по тому же
# die или просто по завершении функции) они дохнут. Для объектов IO::Handle и
# потомков (в данном случае IO::File) это означает автоматическое закрытие
# файла и освобождение соответствующих ресурсов. Однако помимо этого, я
# постарался написать код так, чтобы с глобами он тоже работал

use IO::File;

# Специфика CGI состоит в том, что к одному файлу одновременно могут ломиться
# несколько процессов. Поэтому файлы мы будем лочить. Если у кого DOS-based
# винда, этому несчастному придется это делать иначе. Я бы посоветовал
# радикально - путем смены операционки. Хотя бы на NT-based. Для того, чтобы
# лочить файлы системно-независимо, надо импортировать несколько констант из
# модуля Fcntl.

use Fcntl qw(:flock);

# Чтение

my $fh = new IO::File "< $path" or die "Cannot open $path : $!";

# Требуем блокировку на чтение. flock - функция блокирующая, то есть она будет
# ждать, пока нужный лок не дадут. Она умеет работать в неблокирующем режиме,
# но это отдельная песня

flock($fh,LOCK_SH);

# для текстового файла - чтение по строкам

while (my $line = <$fh>) {
# Тут работаем со строкой, считанной (вместе с n) в $line
}

# для бинарного файла - чтение по блокам

binmode($fh);
my $buf;

# По поводу этой константы можно развернуть отдельную дискуссию. Читайте
# Стивенса, и ваши волосы будут;

my $buflen = 8192;

# Если Вы уверены, что весь файл влезет в память без особых проблем, то эту
# строчку можно заменить на

my $buflen = (stat($fh))[7];

# Если быть совсем эстетом, то следует использовать File::stat, который
# переопределяет stat так, что в скалярном контексте он возвращает объект, к
# полям которого можно обращаться по имени, в данном случае ->size

while (read($fh,$buf,$buflen)) {
# Тут работаем с блоком, считанным в $buf
}

# Если у нас объект IO::File, то файл можно не закрывать, а просто дождаться,
# когда $fh выйдет за пределы видимости. Если глоб, то файл закрыть
# обязательно. Снимать лок в норме не надо, снимется сам при закрытии

close($fh) or die "Error closing $path : $!";

# Запись

my $fh = new IO::File "> $path" or die "Cannot open $path : $!";

# Требуем блокировку на запись

flock($fh,LOCK_EX);

# Для бинарного файла устанавливаем режим бинарного файла, остальное одинаково

binmode($fh);

...
# Успешность записи надо проверять
print $fh $data or die "Write to $path failed: $!";
...

close($fh) or die "Error closing $path : $!";

--
Artem Chuprina
Communiware.net
RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757
1521 Прочтений •  [Работа с бинарными файлами на Perl (perl binary example)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Работа с бинарными файлами на Perl ... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка