Lecture / Ecriture d'un .ppm (Merci Alex :))
|
Définition des types :
code:
type matrice is array(1..larg,1..haut)of integer;
type entete is array(1..entet)of character; |
Lecture du fichier :
code:
-- procedure de lecture d'un fichier
procedure remplir_matrice(matr,matv,matb:out matrice;ent:out entete)is
nom_fichier:string(1..50);
begin
--put("donner un nom de fichier source ");
get_line(item=>nom_fichier,last=>compt_chaine);
open (f,in_file,nom_fichier(1..compt_chaine));
for i in 1..entet loop
read (f,c);
ent (i):=c;
end loop;
for i in 1..larg loop
for j in 1..haut loop
read(f,r);
matR(i,j):=character'pos(r);
read(f,v);
matv(i,j):=character'pos(v);
read(f,b);
matb(i,j):=character'pos(b);
end loop;
end loop;
close(f);
end remplir_matrice; |
Ecriture du fichier :
code:
-- procedure d'enregistrement d'un fichier
procedure vider_matrice(mr,mv,mb:in matrice;e:in entete) is
nom_fichier_r:string(1..50);
begin
--put("donner le nom du fichier resultat ");
get_line(item=>nom_fichier_r,last=>compt_chaine);
create (f,name=>nom_fichier_r(1..compt_chaine));
-- lecture entete
for i in 1..entet loop
write(f,e(i));
end loop;
--lecture donner
for i in 1..larg loop
for j in 1..haut loop
r:=character'val(mr(i,j));
write (f,r);
V:=character'val(mv(i,j));
write (f,v);
B:=character'val(mb(i,j));
write (f,b);
end loop;
end loop;
close (f);
end vider_matrice; |
|
|