/** 装载笔划数据文件 */ int LoadBHResource() { TCHAR name[MAX_PATH]; GetFileFullName(TYPE_USERAPP, HZBH_FILE_NAME, name); if(LoadBHData(name)) return 1; GetFileFullName(TYPE_ALLAPP, HZBH_FILE_NAME, name); return LoadBHData(name); }
/** 装载中文符号INI文件 */ int LoadSymbolResource() { TCHAR name[MAX_PATH]; GetFileFullName(TYPE_USERAPP, SYMBOL_INI_FILE_NAME, name); if (LoadSymbolData(name)) return 1; GetFileFullName(TYPE_ALLAPP, SYMBOL_INI_FILE_NAME, name); return LoadSymbolData(name); }
/** 装载置顶字定义文件 */ int LoadTopZiResource() { TCHAR name[MAX_PATH]; if (!(pim_config->hz_option & HZ_USE_FIX_TOP)) return 0; GetFileFullName(TYPE_USERAPP, TOPZI_FILE_NAME, name); if (LoadTopZiData(name)) return 1; GetFileFullName(TYPE_ALLAPP, TOPZI_FILE_NAME, name); return LoadTopZiData(name); }
HRESULT STDMETHODCALLTYPE KG3DShaderIncludeForRC::Open(D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) { _ASSERTE(NULL == m_hResource); DWORD uBypes = 0; _ASSERTE(NULL != pFileName && ! s_mapFileName.empty()); std::string strFileFullName = GetFileFullName(pFileName); std::transform(strFileFullName.begin(), strFileFullName.end(), strFileFullName.begin(), tolower); TypeFileNameMap::iterator it = s_mapFileName.find(strFileFullName); _ASSERTE(it != s_mapFileName.end()); if (it == s_mapFileName.end()) { return E_FAIL; } DWORD dwFileRCID = it->second; HGLOBAL hglobalTmp = ShaderLibraryLoadShader(dwFileRCID, ppData, &uBypes); //改成可以对头文件进行搜索 if(NULL == hglobalTmp) return E_FAIL; m_hResource = hglobalTmp; *pBytes = uBypes; return S_OK; }
BOOL IsStrInTrackFile(CString Str) { char FullName[MAX_PATH+1] = {0}; FILE *stream = NULL; char *pList = NULL; UINT fileLen = 0; if(GetFileFullName(FullName,WRITE_TOOL_TRACK_FILE)) { if ((stream = fopen(FullName,"r")) == NULL) { return FALSE; } fseek(stream, 0, SEEK_END); fileLen = ftell(stream); pList = (char*)malloc(fileLen+1); fseek(stream,0,SEEK_SET); fread(pList,sizeof(char),fileLen,stream); if (strstr(pList,Str)) { free(pList); fclose(stream); return FALSE; } free(pList); fclose(stream); } return TRUE; }
/** 写出置顶字文件 */ void SaveTopZiData() { TCHAR name[MAX_PATH]; FILE *fw; int i, j; HZ top_zi[MAX_TOPZI + 1]; TCHAR head_msg[500] = {0xFEFF, 0}; static TCHAR *topzi_header_msg = TEXT("#固顶字定义文件\n") TEXT("#格式:\n") TEXT("# 拼音=固顶字(组)\n") TEXT("# 一行内容可以定义最多8个固顶字,第8个之后的,将被忽略\n") TEXT("#如:\n") TEXT("# wo=我\n") TEXT("# d=的地得\n") TEXT("# de=的地得\n\n") TEXT("#在输入时,可以直接按 ctrl+shift+数字 来进行任意字的快速固顶。\n") TEXT("#最后固顶的排在第一位,其它顺序排列。\n"); if (!share_segment) return; _tcscat_s(head_msg, _SizeOf(head_msg), topzi_header_msg); //获得用户topzi文件名称 GetFileFullName(TYPE_USERAPP, TOPZI_FILE_NAME, name); if (!SaveToFile(name, head_msg, (int)_tcslen(head_msg) * sizeof(TCHAR))) return; fw = _tfopen(name, TEXT("ab")); if (!fw) return; //对topzi数组进行排序 qsort(share_segment->topzi_table, share_segment->topzi_table_items, sizeof(share_segment->topzi_table[0]), CompareTopZiItem); for (i = 0; i < share_segment->syllable_map_items; i++) { SYLLABLE s; if (share_segment->syllable_map[i].fuzzy_flag) //模糊的音不输出 continue; //if (share_segment->syllable_map[i].correct_flag) // continue; s.con = share_segment->syllable_map[i].con; s.vow = share_segment->syllable_map[i].vow; s.tone = TONE_0; GetTopZi(s, top_zi); _ftprintf(fw, TEXT("%s="), share_segment->syllable_map[i].pin_yin); for (j = 0; top_zi[j] && j < MAX_TOPZI; j++) _ftprintf(fw, TEXT("%c"), top_zi[j]); _ftprintf(fw, TEXT("\n")); } fclose(fw); }
/** 装载font map data文件 */ int LoadFontMapResource() { TCHAR name[MAX_PATH]; GetFileFullName(TYPE_USERAPP, FONTMAP_FILE_NAME, name); return LoadFontMapData(name); }
/** 装载bigram资源 */ int LoadBigramResource() { TCHAR name[MAX_PATH]; GetFileFullName(TYPE_ALLAPP, BIGRAM_FILE_NAME, name); return LoadBigramData(name); }
/** 保存词Cache数据 */ int SaveCiCacheResource() { TCHAR name[MAX_PATH]; GetFileFullName(TYPE_USERAPP, CICACHE_FILE_NAME, name); return SaveCiCacheData(name); }
//装载英文翻译数据文件 int LoadEnglishTransResource() { TCHAR name[MAX_PATH]; if (!pim_config->use_english_input || !pim_config->use_english_translate) return 0; GetFileFullName(TYPE_ALLAPP, ENGLISH_TRANS_FILE_NAME, name); return LoadEnglishTransData(name); }
/** 装载英文词典文件 */ int LoadEnglishResource() { TCHAR name[MAX_PATH]; if (!pim_config->use_english_input) return 0; GetFileFullName(TYPE_ALLAPP, ENGLISH_LIB_FILE_NAME, name); return LoadEnglishData(name); }
BOOL AddToTrackFile(CString Info) { char FullName[MAX_PATH+1] = {0}; FILE *stream = NULL; // 修改文件名为日期格式,若存在该文件就追加,若没有就创建 char realFileName[128] = {0}; char dbuffer[9] = {0}; _strdate( dbuffer ); // "12/19/08" #if 0 strcpy(realFileName, "20"); memcpy(&realFileName[2], &dbuffer[6], 2); // year "08" or "09" memcpy(&realFileName[4], &dbuffer[0], 2); // month "12" memcpy(&realFileName[6], &dbuffer[3], 2); // month "12" strcat(realFileName, "_"); strcat(realFileName,WRITE_TOOL_TRACK_FILE); if(GetFileFullName(FullName,realFileName)) #else if(GetFileFullName(FullName,WRITE_TOOL_TRACK_FILE)) #endif { if ((stream = fopen(FullName,"r+")) == NULL) { if ((stream = fopen(FullName,"a+")) == NULL) { return FALSE; } } fseek(stream, 0, SEEK_END); fprintf(stream, "%s", Info); fclose(stream); } return TRUE; }
KG3DShaderIncludeForRC::KG3DShaderIncludeForRC() :m_hResource(NULL) { if (s_mapFileName.empty()) //初始化全局的哈希表,把所有shader文件名哈希一遍,以便在Open方法中用文件名哈希得到文件 { _ASSERTE(0 != _countof(g_shaderRCArray)); //这个定义在rc文件里面 for (size_t i = 0; i < _countof(g_shaderRCArray) - 1; ++i) //最后一个是以NULL结束的空结构 { LPCSTR strFilePath = g_shaderRCArray[i].strFilePath; _ASSERTE(NULL != strFilePath); std::string strFileFullName = GetFileFullName(strFilePath); std::transform(strFileFullName.begin(), strFileFullName.end(), strFileFullName.begin(), tolower); TypeFileNameMap::_Pairib ib = s_mapFileName.insert(std::make_pair(strFileFullName, g_shaderRCArray[i].uID)); _ASSERTE(ib.second && _T("如果插入不成功,表示存在哈希值相同的字符串,请把冲突的文件改名")); } } }