Pascal再入門:とりあえずmp3ファイルを読み込んでみる
今、書こうとしているのは、mp3ファイルからid3tagを読み取る為のプログラム。
Pascalでのテキストファイルのシーケンシャルな読み書きは、日常的に使っていたのだが、バイナリーとかランダムアクセスは使う機会がなかった。
更に、id3tagの構造とか文字コードの知識とかが必要。あまり自信がない。座学で知識を収集してからでは、いつまで経っても先に進まないので、とりあえず読み込んでみる。
対象は、前回分割したunitの片割れ。分割したのは、対象を局所化する為。
unit id3tag; interface procedure readfile(s : string); implementation procedure readfile(s : string); var F : File; R : array[1..128] of byte; i : integer; begin Assign(F,s); Reset(F,1); BlockRead(F, R, SizeOf(R)); Close(F); for i := 1 to 128 do begin write(char(R[i])); end; writeln(); writeln('dummy3'); end; end.
このunitと、呼び出し側のプログラムのコードを再コンパイルして、適当なmp3のファイル名を引数にして実行すると、文字コードとバイナリの混在した出力が得られる。最初の3文字'ID3'が読み取れたので。プログラムは正常に動いている。この後の出力を解析する必要がある。
ID3TAGに関しては、とりあえず、最初にヒットした以下のサイトを参考にする。