このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1263824755/920 
#  [1] 授業単元:C言語演習 
#  [2] 問題文(含コード&リンク): 
#  1.fgets関数を用いてpgmファイルの始めの2行(添付ファイルの場合, P2, 304, 
#  322)をそれぞれ、変数header, width, heightに格納するプログラム 
#  2.上記で記憶したheader, width, heightを別ファイルに書き出すプログラム 
#  1.と2.をそれぞれ作成せよ。

pgmファイルヘッダの読み取り(_pgmファイル,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :- 
      open(_pgmファイル,read,Input,[type(binary)]), 
      pgmヘッダ(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル), 
      close(Input),!. 

pgmファイルヘッダ(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :- 
      マジックナンバー(Input,_マジックナンバー), 
      画像の幅方向サイズ(Input,_画像の幅方向サイズ), 
      画像の幅方向サイズ(Input,_画像の幅方向サイズ), 
      画像の高さサイズ(Input,_画像の高さサイズ),!. 

マジックナンバー(Input,_マジックナンバー) :- 
      findall(Y,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;char_code(Y,X))),L), 
      concat_atom(L,_マジックナンバー),!. 

画像の幅方向サイズ(Input,_画像の幅方向サイズ) :- 
      findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L), 
      number_codes(_画像の幅方向サイズ,L),!. 

画像の高さサイズ(Input,_画像の高さサイズ) :- 
      findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L), 
      number_codes(_画像の高さサイズ,L),!. 

画像の最大階調レベル(Input,_画像の最大階調レベル) :- 
      findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L), 
      number_codes(_画像の最大階調レベル,L),!. 

'Whitespace'(X) :- X < 48. 
'Whitespace'(X) :- X > 57.