home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 01 / filesize.cpm < prev    next >
Encoding:
Text File  |  1986-11-25  |  1.4 KB  |  33 lines

  1.    (*-----------------------------------------------------------------------*)
  2.    (* Dateigroesse ermitteln: Wie zur Erstellung eines FCB gibt es in neueren
  3.       BS dazu ebenfalls eine BDOS-Funktion. Z.B. CP/M-Plus:
  4.       Funktion 35: Compute File Size.
  5.       Die hier verwendete Prozedur benutzt die Turbo-Pascal-Funktion
  6.       FileSize(f).                                                          *)
  7.  
  8.    Procedure ComputeFileSize (Var DirList   :DirArray;
  9.                                   Drive     :Byte;
  10.                                   NoEntries :Integer);
  11.  
  12.    Var i    : Integer;
  13.        f    : File;
  14.        FCB  : Array [0..35] of byte;
  15.  
  16.    Begin
  17.      For i:=1 to NoEntries do
  18.        With DirList[i] do
  19.          Begin
  20.            FillChar (FCB,36,#0);                   (* FCB initialisieren    *)
  21.            Move (Drive,FCB,1);                     (* Laufwerk Kennung      *)
  22.            Move (FileName[1],FCB[1],8);            (* Filename eintragen    *)
  23.            Move (FileName[10],FCB[9],3);
  24.            BDOS ($23,Addr(FCB));                   (* Filegroesse bestimmen *)
  25.            Move (FCB[33],RecSize,2);               (* Filegroesse eintragen *)
  26.            kSize := RecSize div 8;
  27.            If RecSize mod 8 <> 0 Then
  28.              kSize := succ(kSize);
  29.          End;
  30.    End;  (* ComputeFileSize *)
  31.  
  32.    (*------------------------------------------------------------------------*)
  33.