Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Удалить два 0xFF 0xFF байта каждые 0x101 байт в файле  (Прочитано 6722 раз)
0 Пользователей и 1 Гость смотрят эту тему.
perl6
Помогающий

ru
Offline Offline

« : 06-09-2018 15:21 » 

Приветствую. как средствами перла выполнить такую задачу? На ум приходит только открыть файл в бинарном режиме, считать все данные в массив, а потом циклом что ли пройтись?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 06-09-2018 21:02 » 

Эти байты гарантировано есть каждые 257 позиций?

Код: (Perl)
while (my $size = sysread($fh_in, my $buff, 257)) {
    $size = 255 if $size == 257;
    syswrite($fh_out, $buff, $size);
}
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
perl6
Помогающий

ru
Offline Offline

« Ответ #2 : 06-09-2018 23:16 » 

Спасибо за идею, буду дальше ковырять сам.

Добавлено через 48 секунд:
Цитата
Эти байты гарантировано есть каждые 257 позиций?
Должны быть
« Последнее редактирование: 06-09-2018 23:17 от perl6 » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 07-09-2018 07:09 » new

Цитата
На ум приходит только открыть файл в бинарном режиме, считать все данные в массив,

Зачем все в массив

один файл на чтение, другой на запись

прочитали в буфер
поменяли
записали
и так пока не искомый файл не прочитан весь

А размер буфера, тот который позволяет система
а точнее буфер чтения

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines