home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / lang / pascal / 8081 < prev    next >
Encoding:
Internet Message Format  |  1993-01-12  |  1.7 KB

  1. Path: sparky!uunet!psinntp!cmcl2!adm!news
  2. From: lee@cpu.us.dynix.com (Lee Crites)
  3. Newsgroups: comp.lang.pascal
  4. Subject: Re: Changing from hidden to UNHIDDEN
  5. Message-ID: <34979@adm.brl.mil>
  6. Date: 12 Jan 93 17:38:44 GMT
  7. Sender: news@adm.brl.mil
  8. Lines: 49
  9.  
  10. On 11 Jan 1993, Craig_J_Stadler wrote:
  11. > How does one go about changing a file attribute
  12. > from hidden to unhidden using SetFAttr ?
  13.  
  14. Try these two procedures on for size:
  15.  
  16. GetFAttr(FName:String;Var RdOnly,Hid,Sys,Arch:Boolean);
  17. Var R:Registers;
  18. Begin
  19.   FillChar(R,SizeOf(R),0);
  20.   FName := FName+#0; { set up as a null-terminated string for DOS }
  21.   With R Do Begin
  22.     AH := $43;
  23.     DS := Seg(FName); DX := Ofs(FName)+1; { skip pascal length byte }
  24.     MsDos(R);
  25.     RdOnly := (CL And $01) > 0;
  26.     Hid := (CL And $02) > 0;
  27.     Sys := (CL And $04) > 0;
  28.     Arch := (CL And $20) > 0;
  29.     End; { with }
  30. End; { GetFAttr }
  31.  
  32. PutFAttr(FName:String;RdOnly,Hid,Sys,Arch:Boolean);
  33. Var R:Registers;
  34. Begin
  35.   FillChar(R,SizeOf(R),0);
  36.   FName := FName+#0; { set up as a null-terminated string for DOS }
  37.   With R Do Begin
  38.     AH := $43; AL := 1;
  39.     DS := Seg(FName); DX := Ofs(FName)+1; { skip pascal length byte }
  40.     If RdOnly Then CL := CL Or $01;
  41.     If Hid Then CL := CL Or $02;
  42.     If Sys Then CL := CL Or $04;
  43.     If Arch Then CL := CL Or $20;
  44.     MsDos(R);
  45.     End; { with }
  46. End; { PutFAttr }
  47.  
  48. The file FName does NOT have to be opened for this to work.  In fact, it
  49. would probably be better if it were not.
  50.  
  51. Hope this helps.
  52.  
  53.            =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  54.             lee@us.dynix.com | If it ain't broke yet,
  55.                              |   let me have a shot at it....
  56.            =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  57.  
  58.  
  59.