documents:proglang:perl:perl-0001
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| documents:proglang:perl:perl-0001 [2026/05/08 11:54] – ↷ documents:perl:perl-0001 から documents:proglang:perl:perl-0001 へページを移動しました。 k896951 | documents:proglang:perl:perl-0001 [2026/05/17 15:00] (現在) – [Perlでバイナリファイルを作るサンプルコード] k896951 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | |||
| + | ====== 004.Perlでバイナリファイルを作るサンプルコード ====== | ||
| + | |||
| + | 2010年11月19日 20時19分22秒 | ||
| + | |||
| + | ファイル名書けって怒られた(´・ω・`) | ||
| + | |||
| + | ==== ソース ==== | ||
| + | |||
| + | <code perl s1.pl> | ||
| + | ## 4桁の16進数を読み込んでバイナリ形式で書き出すサンプル | ||
| + | |||
| + | binmode(STDOUT); | ||
| + | |||
| + | while(< | ||
| + | chomp($_); | ||
| + | $code = uc( $_ ); | ||
| + | printf(" | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 標準入出力を使うことを想定した。 | ||
| + | |||
| + | ==== 入力データ ==== | ||
| + | |||
| + | <code txt input.txt> | ||
| + | 8140 | ||
| + | 8150 | ||
| + | 8160 | ||
| + | 8150 | ||
| + | 8147 | ||
| + | </ | ||
| + | |||
| + | いわゆるCP932(SJIS)の文字を5個並べた。 | ||
| + | |||
| + | ==== 実行結果 ==== | ||
| + | |||
| + | |||
| + | < | ||
| + | D: | ||
| + |  ̄~ ̄; | ||
| + | D:\work> | ||
| + | </ | ||
| + | |||
| + | ==== 説明 ==== | ||
| + | |||
| + | 標準出力をバイナリモードにするため binmode()でSTDOUTを指定した。 | ||
| + | 次に標準出力へ1バイトずつ書き出すために pack()で16進数文字列2桁を1バイトの数値に変換、それを unpack()で“文字”に変換する。あとは printf()の書式で %c を指定した。 | ||
| + | ※2バイトのコードの上位・下位バイトを各々長さ1バイトの文字として編集した | ||
| + | |||
| + | ===== 旧ページコメント ===== | ||
| + | |||
| + | * たのむ - 名無し (2010年11月19日 17時09分18秒) | ||
| + | * ん?なにを? - 努力中の人 (2010年11月19日 20時19分22秒) | ||
| + | |||
| + | {{tag> | ||
documents/proglang/perl/perl-0001.txt · 最終更新: by k896951
