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

📄 utilfiles.c

📁 Pro.TOOLKIT.Wildfire插件设计.配套光盘-141M.zip
💻 C
字号:
/*====================================================================*\FILE	: UtilFiles.cPURPOSE	: Provide some file utilitiesHISTORY..DATE	    BUILD	AUTHOR		MODIFICATIONS06-Mar-96   G-03-05	dmp		$$1 Created21-Mar-96   G-03-07	dmp		$$2 include "UtilMessage.h"22-Apr-96   G-03-11     mgs             $$3  Changed header scheme24-Sep-96   H-01-10     Xuekai          $$4 Remove "protk.h"30-Jun-97   H-03-15     Pavel           $$5 #include "UtilString.h06-Oct-97   H-03-25	Pavel		$$6 more types support13-Oct-97   H-03-26     Pavel		$$7 Added ProUtilGetMdlTypeStr22-Jan-98   H-03-37     aab             $$8 Replaced PRO_TK_BAD_INPUTS by                                            PRO_TYPE_INVALID30-Oct-98   I-01-25     Agsh            $$9 Added ProUtilFileOpen01-Jun-99   I-03-12     mka             $$10 More includes\*====================================================================*//*--------------------------------------------------------------------*\Pro/TOOLKIT includes\*--------------------------------------------------------------------*/#include <ProToolkit.h>#include <ProObjects.h>#include <ProMdl.h>#include <ProFeature.h>/*--------------------------------------------------------------------*\Application includes\*--------------------------------------------------------------------*/#include "TestError.h"#include "UtilString.h"#include "UtilMessage.h"/*--------------------------------------------------------------------*\Application global/external data\*--------------------------------------------------------------------*/static struct str_to_type{    char *str;    ProType type;}str_type_table[] =    {        {"sec", PRO_2DSECTION},        {"prt", PRO_PART},        {"asm", PRO_ASSEMBLY},        {"drw", PRO_DRAWING},        {"mfg", PRO_MFG},        {"lay", PRO_LAYOUT},        {"frm", PRO_DWGFORM},        {"rep", PRO_REPORT},        {"mrk", PRO_MARKUP},        {"dgm", PRO_DIAGRAM},        {"???", PRO_TYPE_INVALID}    };/*====================================================================*\  Function : ProUtilGetProType  Purpose  : looks up the type for a specified string\*====================================================================*/ProType ProUtilGetProType( char *type_str ){    int table_size;    int i;    table_size = sizeof(str_type_table)/sizeof(struct str_to_type);    for( i = 0; i < table_size - 1; i++ )    {	if( !ProUtilStrcmp(type_str, str_type_table[i].str) )	    return( str_type_table[i].type );    }    return( str_type_table[table_size-1].type );}/*====================================================================*\  Function : ProUtilGetMdlTypeStr  Purpose  : looks up the string for a specified type\*====================================================================*/char *ProUtilGetMdlTypeStr( ProMdlType mdltype ){    int table_size;    int i;    table_size = sizeof(str_type_table)/sizeof(struct str_to_type);    for( i = 0; i < table_size - 1; i++ )    {	if( str_type_table[i].type == (ProType)mdltype )	    return( str_type_table[i].str );    }    return( str_type_table[table_size-1].str );}   char *ProUtilModelnameGet(ProMdl *model, char *name, char *type);/*====================================================================*\   FUNCTION :	UserGenFilename   PURPOSE  :	Generate a name for an output file   INPUT    :   p_obj - the model		filext - file extension		permission - file permission used to open the file   OUTPUT   :	filename - file name used to open the file\*====================================================================*/FILE *ProUtilGenFilePtr(ProMdl p_obj, char *filext, char *filename, 							char *permission){	char model_name[PRO_NAME_SIZE];	char type[PRO_EXTENSION_SIZE];	char *error;	FILE *fp;	char str[PRO_LINE_SIZE];	error = ProUtilModelnameGet(&p_obj, model_name, type);	if( error == NULL )	    return( NULL );	else	    strcpy(filename, model_name);	strcat(filename,filext);	if( (fp = fopen(filename, permission)) == NULL )	{	    sprintf(str, "Could not open the file '%s'", filename);	    ProUtilMsgPrint("gen", "USER %0s", str);	}	return(fp);}/*====================================================================*\  Function : ProUtilConfirmNameType  Purpose  : Confirm a valid name and type\*====================================================================*/int ProUtilConfirmNameType(char *input_name, char *name, ProType *type){    char *dot_occur,		/* occurrence of a dot in input_name */	 *slash_occur,		/* occurence of a slash */	  type_str[PRO_EXTENSION_SIZE];    int name_length,		/* length of a part name */	type_length;		/* lenght of a part type */    /*** if there is a full path name, extract the filename first ***/    if((slash_occur = strrchr(input_name, '/')) != NULL)	strcpy(input_name, &slash_occur[1]);    /*** get the position of the dot in a file name ***/    if((dot_occur = strchr(input_name, '.')) != NULL)    {	/*** extract name ***/	if(( name_length = strlen(input_name) - strlen(dot_occur))>0)	{	    strncpy(name,input_name,name_length);	    name[name_length] = '\0';	}	else	    return( PRO_TK_BAD_INPUTS );	/*** extract type ***/	if ((type_length = strlen( &dot_occur[1] ))==3)	{	    strncpy(type_str, &dot_occur[1], type_length);	    type_str[3]='\0';	    /* get the mode */	    return( (*type = ProUtilGetProType(type_str)) );	}	else	    return( PRO_TK_BAD_INPUTS );    }    else        return( PRO_TK_BAD_INPUTS );}/*============================================================================*\ Function:  ProUtilFileOpen Purpose:   Select file from disk\*============================================================================*/ProError ProUtilFileOpen(    char *extension,    char *file_name){     ProLine	w_ext;    ProPath     *w_path_arr, w_def_path, w_sel_path;    ProName     *w_path_lab_arr;    ProError     err;                                 ProStringToWstring(w_def_path, ".");    ProStringToWstring(w_ext, extension);    /* No default dirs */    err = ProArrayAlloc(0, sizeof(ProPath), 1, (ProArray*)&w_path_arr);    err = ProArrayAlloc(0, sizeof(ProPath), 1, (ProArray*)&w_path_lab_arr);    /* Open file */    err = ProFileOpen(NULL, w_ext, w_path_arr, w_path_lab_arr, w_def_path, NULL,		      w_sel_path);    TEST_CALL_REPORT("ProFileOpen()", "ProUtilFileOpen()", 					    err, err != PRO_TK_NO_ERROR);    ProArrayFree((ProArray*)&w_path_arr);    ProArrayFree((ProArray*)&w_path_lab_arr);    ProWstringToString(file_name, w_sel_path);    return(err);}

⌨️ 快捷键说明

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