154 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| //
 | |
| // CXL_UTIL.CPP
 | |
| //
 | |
| //  Source file for ArchiveLib 1.0
 | |
| //
 | |
| //  Copyright (c) Greenleaf Software, Inc. 1994
 | |
| //  All Rights Reserved
 | |
| //
 | |
| // CONTENTS
 | |
| //
 | |
| //  StripFileName()
 | |
| //  StripFileNameVB()
 | |
| //  StripPath()
 | |
| //  StripPathVB()
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  This file contains a couple of C/VB functions that are used to
 | |
| //  mangle file names.  They defied ordinary categorization, so they
 | |
| //  ended up here.  The deal is that they operate on objects of class
 | |
| //  ALName, but there is no C/VB translation for ALName.  Because of
 | |
| //  this, we provide these versions that return native string types.
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //  May 25, 1994  1.0A  : First release
 | |
| //
 | |
| //
 | |
| 
 | |
| #include "arclib.h"
 | |
| #pragma hdrstop
 | |
| 
 | |
| #include "al.h"
 | |
| #include "alcxl.h"
 | |
| 
 | |
| // C TRANSLATION FUNCTION
 | |
| //
 | |
| // extern "C" char * StripFileName( char *filename )
 | |
| //
 | |
| // VB TRANSLATION FUNCTION
 | |
| //
 | |
| // extern "C" long StripFileNameVB( char *filename )
 | |
| //
 | |
| // ARGUMENTS:
 | |
| //
 | |
| //  filename  :  An ordinary VB or C string that contains a file name.
 | |
| //
 | |
| // RETURNS
 | |
| //
 | |
| //  Either a C or VB string type, containing just the path.  Note that
 | |
| //  the C version of the function copies over your existing string,
 | |
| //  whereas the VB version creates a new VB string.
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  This function takes a file name, and strips off any filename and
 | |
| //  extension, leaving the drive and path name.  These functions are
 | |
| //  very handy when it comes to wild card expansion, which is why
 | |
| //  they are in ArchiveLib.
 | |
| //
 | |
| //  If you want to see how the C++ member functions perform these
 | |
| //  amazing feats, see OBJNAME.CPP.
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   May 22, 1994  1.0A  : First release
 | |
| //
 | |
| 
 | |
| //
 | |
| // The C translation function.
 | |
| //
 | |
| extern "C" char AL_DLL_FAR * AL_FUNCTION
 | |
| StripFileName( char AL_DLL_FAR *filename )
 | |
| {
 | |
|     ALName temp = filename;
 | |
|     temp.StripFileName();
 | |
|     strcpy( filename, temp );
 | |
|     return filename;
 | |
| }
 | |
| 
 | |
| #if defined( AL_BUILDING_DLL ) && defined( AL_WINDOWS_GUI ) && !defined( AL_FLAT_MODEL )
 | |
| 
 | |
| //
 | |
| // The VB translation function.
 | |
| //
 | |
| extern "C" long AL_FUNCTION StripFileNameVB( char AL_DLL_FAR *filename )
 | |
| {
 | |
|     ALName temp = filename;
 | |
|     char _far *p = temp.StripFileName();
 | |
|     return ALCreateVBString( p, (unsigned short int) _fstrlen( p ) );
 | |
| }
 | |
| 
 | |
| #endif
 | |
| 
 | |
| // C TRANSLATION FUNCTION
 | |
| //
 | |
| // extern "C" char * StripPath( char *filename )
 | |
| //
 | |
| // VB TRANSLATION FUNCTION
 | |
| //
 | |
| // extern "C" long StripPathVB( char *filename )
 | |
| //
 | |
| // ARGUMENTS:
 | |
| //
 | |
| //  filename  :  An ordinary VB or C string that contains a file name.
 | |
| //
 | |
| // RETURNS
 | |
| //
 | |
| //  Either a C or VB string type, with the drive and path stripped,
 | |
| //  leaving just a filename and extension.  Note that
 | |
| //  the C version of the function copies over your existing string,
 | |
| //  whereas the VB version creates a new VB string.
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  This function takes a file name, and strips off any path and drive
 | |
| //  information, leaving the file and extension.  These functions are
 | |
| //  very handy when it comes to wild card expansion, which is why
 | |
| //  they are in ArchiveLib.
 | |
| //
 | |
| //  If you want to see how the C++ member functions perform these
 | |
| //  amazing feats, see OBJNAME.CPP.
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   May 22, 1994  1.0A  : First release
 | |
| //
 | |
| 
 | |
| //
 | |
| // The C translation function.
 | |
| //
 | |
| extern "C" char AL_DLL_FAR * AL_FUNCTION
 | |
| StripPath( char AL_DLL_FAR *filename )
 | |
| {
 | |
|     ALName temp = filename;
 | |
|     temp.StripPath();
 | |
|     strcpy( filename, temp );
 | |
|     return filename;
 | |
| }
 | |
| 
 | |
| #if defined( AL_BUILDING_DLL ) && defined( AL_WINDOWS_GUI ) && !defined( AL_FLAT_MODEL )
 | |
| //
 | |
| // The VB translation function
 | |
| //
 | |
| extern "C" long AL_FUNCTION StripPathVB( char AL_DLL_FAR *filename )
 | |
| {
 | |
|     ALName temp = filename;
 | |
|     char _far *p = temp.StripPath();
 | |
|     return ALCreateVBString( p, (unsigned short int) _fstrlen( p ) );
 | |
| }
 | |
| #endif
 | |
| 
 | |
| 
 |