* Status_Error in close() of file
@ 2005-12-07 13:27 rashmi
2005-12-07 13:50 ` jimmaureenrogers
0 siblings, 1 reply; 2+ messages in thread
From: rashmi @ 2005-12-07 13:27 UTC (permalink / raw)
Dear reader
When using the function FUNC_OpClFile() below I have been getting a
Status_Error after all my data was read from the file "OJV.dat" . Using
the debugger I located this error at the place where "OJV.dat" was
asked to be closed by the close() function. As I suspected that the
problem was because the close() function could not locate the
End-of-File marker, I even wrote another function FUNC_CanCloFi to seek
and return the End-of-File marker where found, so that close() could
work. But the same Status_Error message still persists. So I am trying
to figure out where and why the problem is exactly happening.
Rashmi.
*******************************************************************************
function FUNC_OpClFile(EN_Cald : in EN_FnCd) return EN_Acpt is
type RE_FilRcd is
record
PV_FilIMo : File_Mode := In_File ;
PV_FilIty : File_Type;
end record;
TF_CanClo : Boolean;
RE_RcdFil : RE_FilRcd;
EN_OCFRtn : EN_Acpt := EN_IsOk;
ST_IFiNam : String := ".\OJV.dat";
begin
case EN_Cald is
when EN_NtCd =>
open
(RE_RcdFil.PV_FilIty,RE_RcdFil.PV_FilIMo,ST_IFiNam);
set_input(RE_RcdFil.PV_FilIty);
when EN_IsCd =>
TF_CanClo := FUNC_CanCloFi;
if TF_CanClo then
close(RE_RcdFil.PV_FilIty);
end if;
when others =>
Null;
end case;
return EN_OCFRtn;
end FUNC_OpClFile;
function FUNC_CanCloFi return Boolean is
TF_NxtEof : Boolean := False;
CH_Dumy : Character;
begin
while not TF_NxtEof
loop
if not End_of_File then
Get_Immediate(CH_Dumy);
end if;
if End_of_File then
TF_NxtEof := True;
end if;
end loop;
return TF_NxtEof ;
end FUNC_CanCloFi;
*******************************************************************************
OJV.dat
8
1 8
2 0
3 0
4 0
1 4 1
2 5 1
3 3 1
4 2 1
5 6 1
6 5 1
7 3 1
8 3 1
1 -1.5 +9.0
2 -1.0 +5.4
3 +2.3 +3.0
4 +1.1 +2.1
5 +1.2 +1.4
6 +2.4 +2.9
7 -2.1 +8.7
8 -2.3 +5.6
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Status_Error in close() of file
2005-12-07 13:27 Status_Error in close() of file rashmi
@ 2005-12-07 13:50 ` jimmaureenrogers
0 siblings, 0 replies; 2+ messages in thread
From: jimmaureenrogers @ 2005-12-07 13:50 UTC (permalink / raw)
rashmi wrote:
> Dear reader
>
> When using the function FUNC_OpClFile() below I have been getting a
> Status_Error after all my data was read from the file "OJV.dat" . Using
> the debugger I located this error at the place where "OJV.dat" was
> asked to be closed by the close() function. As I suspected that the
> problem was because the close() function could not locate the
> End-of-File marker, I even wrote another function FUNC_CanCloFi to seek
> and return the End-of-File marker where found, so that close() could
> work. But the same Status_Error message still persists. So I am trying
> to figure out where and why the problem is exactly happening.
>
> Rashmi.
>
> *******************************************************************************
> function FUNC_OpClFile(EN_Cald : in EN_FnCd) return EN_Acpt is
> type RE_FilRcd is
> record
> PV_FilIMo : File_Mode := In_File ;
> PV_FilIty : File_Type;
> end record;
> TF_CanClo : Boolean;
> RE_RcdFil : RE_FilRcd;
> EN_OCFRtn : EN_Acpt := EN_IsOk;
> ST_IFiNam : String := ".\OJV.dat";
> begin
> case EN_Cald is
> when EN_NtCd =>
> open
> (RE_RcdFil.PV_FilIty,RE_RcdFil.PV_FilIMo,ST_IFiNam);
> set_input(RE_RcdFil.PV_FilIty);
> when EN_IsCd =>
> TF_CanClo := FUNC_CanCloFi;
> if TF_CanClo then
> close(RE_RcdFil.PV_FilIty);
> end if;
> when others =>
> Null;
> end case;
> return EN_OCFRtn;
> end FUNC_OpClFile;
>
How is RE_RcdFil.PV_Fillty set when FUNC_OpClFile is called with a
value of EN_IsCd?
You apparently believe that it retains its value from the open call.
That cannot be true.
Your close procedure will work properly when you pass in a file_type
variable with a valid value.
Jim Rogers
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-12-07 13:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-12-07 13:27 Status_Error in close() of file rashmi
2005-12-07 13:50 ` jimmaureenrogers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox