home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
On Disk Monthly 62
/
odm62.zip
/
GDSOURCE.EXE
/
POPDIR.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-10-14
|
1KB
|
71 lines
{$A-,B-,D+,E+,F-,G-,I+,L+,N-,O-,R-,S+,V-,X-}
{$M 16384,0,655360}
program popdir;
USES dos, crt;
CONST DataFilename = 'C:\PATHS.DAT';
MaximumPaths = 840;
VAR T : text;
DTA : searchrec;
NumPaths : integer;
Paths : array [1..MaximumPaths] of DirStr;
DirGotten,
CurrPath : DirStr;
I : integer;
SaveExit : pointer;
{$F+}
PROCEDURE DoExit;
BEGIN
ExitProc := SaveExit;
IF ExitCode <> 0 THEN
BEGIN
WriteLn('Directory '+DirGotten+' invalid.');
ExitCode := 0;
ErrorAddr := NIL;
END;
END;
{$F-}
BEGIN
SaveExit := ExitProc;
ExitProc := @DoExit;
WriteLn('POP DIRECTORY Version 1.00 by George Leritte');
WriteLn('Copyright (c) 1991, Softdisk, Inc.');
Write(' ');
FindFirst(DataFilename, 32, DTA);
IF DosError <> 0 THEN
BEGIN
Assign(T, DataFilename);
Rewrite(T);
Close(T);
WriteLn('No paths pushed. ');
Exit;
END;
Assign(T, DataFilename);
Reset(T);
NumPaths := 0;
WHILE NOT Eof(T) AND (NumPaths<MaximumPaths) DO
BEGIN
Inc(NumPaths);
ReadLn(T, Paths[NumPaths]);
END;
Close(T);
IF NumPaths = 0 THEN
BEGIN
WriteLn(' No paths pushed. ');
Exit;
END;
DirGotten := Paths[NumPaths];
ChDir(DirGotten);
WriteLn('Directory '+DirGotten+' popped.');
Dec(NumPaths);
Assign(T, DataFilename);
Rewrite(T);
FOR I := 1 TO NumPaths DO
WriteLn(T, Paths[I]);
Close(T);
END.