home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* DIRMTDTA.PAS *)
- (* (c) 1987 Michael Ceol & PASCAL INT. *)
- (* Eintrag aus DTA (MS-DOS und TOS) in das Format der Bibliothek bringen: *)
- PROCEDURE DTAtoDirEntry (VAR entry: Dir_Rec);
- VAR i: INTEGER; temp: Dir_Str;
- BEGIN
- WITH entry DO begin
- name := ''; ext := ''; date := '00000000'; time := '000000'; size := 0.0;
- IF DirResult = DOSfnok THEN BEGIN
- (* Dateiname: CHAR-Array nach String, 0-Byte kennzeichnet das Ende *)
- temp := ''; i := 1;
- WHILE (i <= 13) AND (DirDTA^.name[i] <> Chr(0)) DO BEGIN
- temp := Concat(temp, DirDTA^.name[i]); i := Succ(i);
- END;
- (* wg. Sortierung Name und Art (Extension) trennen: *)
- i := Pos('.',temp); ext := '';
- IF i > 1 THEN ext := Copy(temp,Succ(i),Length(temp)-i) (* Ext. vorh. *)
- ELSE i := Succ(Length(temp)); (* keine Ext. oder 'Mama'-Verzeichnis *)
- name := Copy(temp,1,Pred(i));
- (* wiederum wg. Sortierung mit Leerzeichen auffuellen: *)
- FOR i := Succ(Length(name)) TO 8 DO name := Concat(name,' ');
- FOR i := Succ(Length(ext)) TO 3 DO ext := Concat(ext,' ');
- DOSTimeStr(DirDTA^.time, time); DOSDateStr(DirDTA^.date, date);
- size := CompFSize; attr := DirDTA^.resv[21];
- END;
- END;
- END;
- (* ----------------------------------------------------------------------- *)
- (* DIRMTDTA.PAS *)