⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesys.hhf

📁 High Level assembly language(HLA)软件
💻 HHF
字号:
#if( ! @defined( filesys_hhf ))?filesys_hhf := true;#includeOnce( "os.hhf" )#includeOnce( "hla.hhf" )#includeOnce( "stdio.hhf" )/*********************************************************************//*                                                                   *//* 	                                                                 *//* 	filesys namespace                                                *//* 	                                                                 *//* 	                                                                 *//*********************************************************************/namespace filesys; @fast;	procedure delete( filename:string ); 		@external( "FILESYS_DELETE" );	procedure rename( fromPath:string; toPath:string ); 		@external( "FILESYS_RENAME" );	procedure mkdir( directory:string ); 		@external( "FILESYS_MKDIR" );	procedure rmdir( directory:string ); 		@external( "FILESYS_RMDIR" );	procedure cd( directory:string ); 		@external( "FILESYS_CD" );	procedure exists( FileName:string ); 		@returns( "EAX" ); 		@external( "FILESYS_EXISTS" );	procedure isFile( FileName:string ); 		@returns( "EAX" ); 		@external( "FILESYS_ISFILE" );	procedure isDir( FileName:string ); 		@returns( "EAX" ); 		@external( "FILESYS_ISDIR" );	procedure gwd( directory:string ); 		@external( "FILESYS_GWD" );	#macro size( parameter );		#if( @typename( parameter ) = "string" )					filesys._sizen_( parameter );		#elseif( @typename( parameter ) = "dword" )			filesys._sizeh_( parameter );		#elseif( @size( parameter ) = 4 )			#print			( 				"Warning: assuming '",				@string:parameter,				"' parameter is a handle" 			);			filesys._sizeh_( parameter );		#else			#error( "Illegal parameter type (expected dword or string)" );		#endif	#endmacro	procedure _sizeh_( handle:dword );		@returns( "EAX" );		@external( "FILESYS_SIZEHANDLE" );	procedure _sizen_( filename:string );		@returns( "EAX" );		@external( "FILESYS_SIZENAME" );	// Directory iterators:		iterator fileWithSuffix( directory:string; suffix:string ); 		@external( "FILESYS_FILEWITHSUFFIX" );		iterator fileIn( directory:string ); 		@external( "FILESYS_FILEIN" );		iterator fileInCwd; 		@external( "FILESYS_FILEINCWD" );		iterator dirIn( directory:string ); 		@external( "FILESYS_DIRIN" );		iterator dirInCwd; 		@external( "FILESYS_DIRINCWD" );		iterator itemInCwd; 		@external( "FILESYS_ITEMINCWD" );		iterator itemWithSuffix( directory:string; suffix:string ); 		@external( "FILESYS_ITEMWITHSUFFIX" );			// Filename predicate functions:		procedure hasDriveLetter( pathname:string );		@returns( "@c" );	// and AL		@external( "FILESYS_HASDRIVELETTER" );			procedure hasExtension( pathname:string );		@returns( "@c" );  // and EAX		@external( "FILESYS_HASEXTENSION" );	procedure hasUncName( pathname:string );		@returns( "@c" );	// and EAX		@external( "FILESYS_HASUNCNAME" );			procedure hasPath( pathname:string );		@returns( "@c" );		@external( "FILESYS_HASPATH" );			// pathname component extraction functions:		procedure a_extractBase( pathname:string );		@returns( "@c" );	// and EAX		@external( "FILESYS_A_EXTRACTBASE" );	procedure a_extractExt( pathname:string );		@returns( "@c" ); // and eax		@external( "FILESYS_A_EXTRACTEXT" );			procedure a_extractFilename( pathname:string );		@returns( "@c" );	// and EAX		@external( "FILESYS_A_EXTRACTFILENAME" );			procedure a_extractPath( pathname:string );		@returns( "@c" );	// and EAX		@external( "FILESYS_A_EXTRACTPATH" );			procedure extractBase( pathname:string; base:string );		@returns( "@c" );		@external( "FILESYS_EXTRACTBASE" );			procedure extractExt( pathname:string; dest:string );		@returns( "@c" );		@external( "FILESYS_EXTRACTEXT" );	procedure extractFilename( pathname:string; fName:string );		@returns( "@c" );		@external( "FILESYS_EXTRACTFILENAME" );			procedure extractPath( pathname:string; dest:string );		@returns( "@c" );		@external( "FILESYS_EXTRACTPATH" );	// Pathname conversion and manipulation functions:		procedure a_joinPaths( leftPath:string; rightPath:string );		@returns( "eax" );		@external( "FILESYS_A_JOINPATHS" );	procedure a_normalize( path:string );		@returns( "eax" );		@external( "FILESYS_A_NORMALIZE" );			procedure a_toUnixPath( pathname:string );		@returns( "eax" );		@external( "FILESYS_A_TOUNIXPATH" );	procedure a_toWin32Path( pathname:string );		@returns( "eax" );		@external( "FILESYS_A_TOWIN32PATH" ); 	procedure joinPaths( leftPath:string; rightPath:string; dest:string );		@external( "FILESYS_JOINPATHS" );	procedure normalize1( pathname:string );		@returns( "@c" );		@external( "FILESYS_NORMALIZE1" );			procedure normalize2( pathname:string; dest:string );		@returns( "@c" );		@external( "FILESYS_NORMALIZE2" );			procedure toUnixPath1( pathname:string );		@external( "FILESYS_TOUNIXPATH1" );	procedure toUnixPath2( pathname:string; dest:string );		@external( "FILESYS_TOUNIXPATH2" );	procedure toWin32Path1( pathname:string );		@external( "FILESYS_TOWIN32PATH1" );	procedure toWin32Path2( pathname:string; dest:string );		@external( "FILESYS_TOWIN32PATH2" ); 	#if( @global:os.win32 )				const 			toNativePath1	:text := "toWin32Path1";			toNativePath2	:text := "toWin32Path2";	    	a_toNativePath	:text := "a_toWin32Path";	#else				const 			toNativePath1	:text := "toUnixPath1";			toNativePath2	:text := "toUnixPath2";	    	a_toNativePath	:text := "a_toUnixPath";	#endif 	procedure a_getFullPathName( partialPath:string );		@returns( "eax" );		@external( "FILESYS_A_GETFULLPATHNAME" ); 	procedure getFullPathName( partialPath:string; fullPath:string );		@returns( "eax" );		@external( "FILESYS_GETFULLPATHNAME" );	end filesys;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -