[fpc-pascal] how to initialize a SearchRec var?
Sven Barth
pascaldragon at googlemail.com
Thu Jan 2 20:52:17 CET 2014
On 02.01.2014 20:21, waldo kitty wrote:
>
>
> understanding that SearchRec has different formats for different OS
> targets, we've tried to use fillchar to initialize it to an empty
> record... unfortunately that does not remove the hint... instead the
> hint points to the fillchar line...
>
> we do not want to turn off hints so how can we initialize dirinfo and
> make fpc happy?
>
>
> [quote="os/2 ecs"]
> Hint: Start of reading config file fpc.cfg
> Hint: End of reading config file fpc.cfg
> Free Pascal Compiler version 2.6.2 [2013/02/09] for i386
> Copyright (c) 1993-2012 by Florian Klaempfl and others
> Target OS: OS/2
> Compiling dirinfo.pas
> dirinfo.pas(13,19) Hint: Variable "dirinfo" does not seem to be initialized
> Assembling test_searchrec
> Linking dirinfo.exe
> emxbind 0.9d -- Copyright (c) 1991-1997 by Eberhard Mattes
> Deleting *path*\projects\satsort\dirinfo.out
> 1 file deleted 335,872 bytes freed
> 16 lines compiled, 3.9 sec
> 3 hint(s) issued
> [/quote]
>
>
> [quote]="vista"]
> C:\freepascal\projects\misc_projects>fpc -vhinw dirinfo.pas
> Hint: Start of reading config file fpc.cfg
> Hint: End of reading config file fpc.cfg
> Free Pascal Compiler version 2.7.1 [2013/12/05] for i386
> Copyright (c) 1993-2013 by Florian Klaempfl and others
> Target OS: Win32 for i386
> Compiling dirinfo.pas
> dirinfo.pas(13,19) Hint: Variable "dirinfo" does not seem to be initialized
> Linking dirinfo.exe
> 16 lines compiled, 0.8 sec, 28304 bytes code, 1524 bytes data
> 3 hint(s) issued
> [/quote]
>
>
> [quote="dirinfo.pas"]
> program test_SearchRec;
>
> uses
> Dos;
>
> const
> pattern : string = '*.pas';
>
> var
> dirinfo : SearchRec;
>
> begin
> fillchar(dirinfo,sizeof(dirinfo),$00);
> FindFirst(pattern,AnyFile,dirinfo);
> findclose(dirinfo);
> end.
> [/quote]
>
Beginning with 2.7.1 you can use the new Default() intrinsic which takes
a type name as first and only argument (it returns a 0 initialized value
of that type):
=== code begin ===
var
dirinfo: SearchRec;
begin
dirinfo := Default(SearchRec);
FindFirst(pattern, AnyFile, dirinfo);
FindClose(dirinfo);
end;
=== code end ===
Regards,
Sven
More information about the fpc-pascal
mailing list