home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
vdl020d.zip
/
VGI.DOC
< prev
next >
Wrap
Text File
|
1993-04-14
|
3KB
|
205 lines
Program VGI;
Uses
DOS,
VTypes,
VGen,
VDOSHigh;
Procedure GrabInterface( IncPreFace : BOOLEAN;
IncDocs : BOOLEAN;
InFile : STRING;
OutFile : STRING );
Var
FI : TEXT;
FO : TEXT;
T : STRING;
T2 : STRING;
FoundInterface : BOOLEAN;
FoundImp : BOOLEAN;
FoundDocStart : BOOLEAN;
BEGIN
Assign( FI, InFile );
Reset( FI );
Assign( FO, OutFile );
Rewrite( FO );
FoundInterface := FALSE;
FoundImp := FALSE;
While (Not Eof( FI )) and (FoundImp=FALSE) Do
BEGIN
ReadLn( FI, T );
T2 := UpperString( TrimChar( T, Center, ' ' ));
If T2 = 'IMPLEMENTATION' Then
FoundImp := TRUE
ELSE
BEGIN
If T2 = 'INTERFACE' Then
BEGIN
FoundInterface := TRUE;
END
ELSE
BEGIN
If (IncPreFace) or (FoundInterface) Then
BEGIN
WriteLn( FO, T );
END; { if incpreface or foundinterface }
END; { if t2=interface / else }
END; { if t2=implementation / else }
END; { while not eof ... }
If IncDocs Then
BEGIN
{ grab the documentation }
FoundDocStart := FALSE;
While (Not Eof( FI )) Do
BEGIN
ReadLn( FI, T );
If FoundDocStart Then
BEGIN
If Copy( T, 1, 3 )='-*)' Then
BEGIN
FoundDocStart := FALSE
END
ELSE
BEGIN
WriteLn( FO, T );
END; { if t[1..3] = -*) / else }
END { if founddocstart }
ELSE
BEGIN
If Copy( T, 1, 3 )='(*-' Then
BEGIN
FoundDocStart := TRUE;
WriteLn( FO, '' );
WriteLn( FO, '──────────────────────────────────────────────────────────────────────────────' );
WriteLN( FO, '' );
END; { if t[1..3] = (*- / else }
END; { if founddocstart / else }
END; { while not eof }
END; { if IncDocs }
Close( FI );
Close( FO );
END; { procedure grabinterface }
{----------------------------------------------------------------}
Procedure SearchFiles( WildCard : STRING );
Var
DirInfo : SearchRec;
DestFile : STRING;
BEGIN
FindFirst( WildCard, Archive, DirInfo );
While DosError = 0 Do
BEGIN
If UpperString( ParamStr( 2 ) ) = 'DOCS' Then
BEGIN
DestFile := MaskWildCards( DirInfo.Name, '*.DOC' );
WriteLn( DirInfo.Name+' -=> ', DestFile );
GrabInterface( TRUE,
TRUE,
DirInfo.Name,
DestFile );
END
ELSE
BEGIN
DestFile := MaskWildCards( DirInfo.Name, '*.INT' );
WriteLn( DirInfo.Name+' -=> ', DestFile );
GrabInterface( TRUE,
FALSE,
DirInfo.Name,
DestFile );
END;
FindNext(DirInfo);
END;
END;
{----------------------------------------------------------------}
BEGIN
WriteLn;
WriteLn('Visionix Grab Interface Program (VGI) 0.95');
WriteLN('Copyright 1993 Visionix');
WriteLn('ALL RIGHTS RESERVED');
WriteLn;
If ParamCount>=1 Then
SearchFiles( ParamStr( 1 ) )
ELSE
WriteLn('Usage: VGI filespec [docs]');
WriteLn;
END.