[過去ログ] Perlについての質問箱 64箱目 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
512(1): 2020/07/24(金)11:24 ID:JRbdBOQM(1/10) AAS
>>511
レスありがとうございます
________________________________________________
SROファイルの書き換え
000000-00007F 東芝ヘッダ
000080-007FFF (データA)
008000-00807F 東芝ヘッダ
008080-00FFFF (データB)
010000-01007F 東芝ヘッダ
010080-01FFFF (データC)
というふうに、0x8000バイトで1セットとなっている。
東芝ヘッダとは、0x80バイトからなるデータブロック。途中に## Toshiba 〜という文字列を含んでいる
東芝ヘッダのコピー禁止フラグ(CPP)のあるオフセット0x1Cを 0x40 ⇒ 0x00 に修正。
547: 2020/07/26(日)18:32 ID:hRZi6+cn(1) AAS
>>512
最適化するとすると手順はこんな感じかな。
1. 0x1c バイト読んでそのまま書く。
2. 1バイト読む。読めなかったら 5 へ。読んだ内容が 0x40 なら 0x00 に変えて書く。0x40 でなければそのまま書く。
3. 最大 0x7fff バイト読み、読めたデータをそのまま書く。
4. 2へ。
5. 終わり。
STDIN から読んで STDOUT で書くならこうなる。
read(STDIN, $buf, 0x1c);
print $buf;
while (read(STDIN, $buf, 1)) {
print $buf eq "\x40" ? "\x00" : $buf;
read(STDIN, $buf, 0x7fff);
print $buf;
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.177s