[Back to DOS SWAG index] [Back to Main SWAG index] [Original]
{
OK, here's a problem. FExpand takes Newest.Name and appends it to the
full CURRENT path, not the path you specified on the command line. You
have to keep track of that path yourself. Or, here's a unit that might
help. It's an Expanded Searchrec that returns a full filespec.
}
unit EXSRec;
{ Written by Steve Rogers - 1994. Released to public domain }
interface
uses
dos;
type
EXSearchRec = record { EXtended searchrec }
name : pathstr; { fully specified filename }
dsub : searchrec; { dos.searchrec }
end;
procedure ffirst(path : pathstr;attr : word;var dd : EXSearchRec);
procedure fnext(var dd : EXSearchRec);
implementation
procedure ffirst(path : pathstr;attr : word;var dd : EXSearchRec);
begin
findfirst(path,attr,dd.dsub);
if (doserror=0) then with dd do begin
name:= path;
while not (name[length(name)] in ['\',':',#0])
do dec(name[0]);
name:= name+dsub.name;
end else dd.name:= '';
end;
{----------------------}
procedure fnext(var dd : EXSearchRec);
begin
findnext(dd.dsub);
if (doserror=0) then with dd do begin
while not (dd.name[length(dd.name)] in ['\',':',#0])
do dec(name[0]);
name:= name+dsub.name;
end else dd.name:= '';
end;
{----------------------}
end.
[Back to DOS SWAG index] [Back to Main SWAG index] [Original]