いろんな言語で宿題 第四編 at TECH
[2ch|▼Menu]
37:デフォルトの名無しさん
10/03/16 15:28:29
>>36
% Prolog
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,X >57,!.


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5499日前に更新/23 KB
担当:undef