package body File_Scanning is
procedure Scan ( file : in file_type; ch : in character;
found : out boolean ) is
c : character;
begin
while not End_of_File(file) loop
get(file,c);
if c = ch
then found := true;
return;
end if;
end loop;
found := false;
end Scan;
procedure Scan ( file : in file_type; banner : in string;
found : out boolean ) is
index : natural := banner'first-1;
ch : character;
begin
while not End_of_File(file) loop
get(file,ch);
if index < banner'first
then
if ch = banner(banner'first)
then index := banner'first+1;
end if;
else
if ch = banner(index)
then index := index + 1;
else index := banner'first-1;
end if;
end if;
exit when index > banner'last;
end loop;
if index > banner'last
then found := true;
else found := false;
end if;
exception
when others => found := false; return;
end Scan;
procedure Scan_and_Skip ( file : in file_type; banner : in string;
found : out boolean ) is
fnd : boolean;
begin
Scan(file,banner,fnd);
if fnd
then skip_line(file);
end if;
found := fnd;
end Scan_and_Skip;
end File_Scanning;