打印汉字拼音列表 // 打印汉字拼音列表 VOID CharToSyllable(const WCHAR* outFile, BOOL isDigitTone, BOOL isUppercase) { WCHAR pSyllable[16]; FILE* out = _wfopen(outFile, L"wt"); if(out == NULL)return; CUnicodeConverter::Print_UTF8_BOM(out); for(INT k = 0; k < 2; k++) { DWORD dwCodeBegin, dwCodeEnd; if(k == 0) { dwCodeBegin = Pinyin::NormZoneBegin; dwCodeEnd = Pinyin::NormZoneEnd; } else { dwCodeBegin = Pinyin::CompatibilityZoneBegin; dwCodeEnd = Pinyin::CompatibilityZoneEnd; } for(DWORD dwCode = dwCodeBegin; dwCode <= dwCodeEnd; dwCode++) { const WORD* pSyllableSet; INT iNum = Pinyin::Pronunciation(dwCode, &pSyllableSet); if(iNum > 0) { CUnicodeConverter::Print_UTF8_By_UCS4(out, dwCode); fprintf(out, "/t%4X/t", dwCode); for(INT i = 0; i < iNum; i++) { Pinyin::Syllable(pSyllable, pSyllableSet[i], isDigitTone, isUppercase); if(i != 0)fputc(' ', out); CUnicodeConverter::Print_UTF8Str_By_UTF16Str(out, (WORD*)pSyllable); } fputc('/n', out); } } } fclose(out); } 打印同音字表 // 打印同音字表 VOID PrintHomophone(const WCHAR* outFile, Pinyin::TCharSet cs, BOOL isDigitTone, BOOL isUppercase) { FILE* out = _wfopen(outFile, L"wt"); if(out == NULL)return; // 打印字节序标记 CUnicodeConverter::Print_UTF8_BOM(out); // 打印同音字 WCHAR pSyllable[16]; for (INT i = 0; i < Pinyin::SYLLABLE_NUM; i++) { INT iNum = Pinyin::Homophone(NULL, i, cs); if(iNum > 0) { // 打印音节 Pinyin::Syllable(pSyllable, i, isDigitTone, isUppercase); CUnicodeConverter::Print_UTF8Str_By_UTF16Str(out, (WORD*)pSyllable); fputc('/n', out); // 打印同音字 WCHAR* pHomophone = new WCHAR[iNum + 1]; Pinyin::Homophone(pHomophone, i, cs); CUnicodeConverter::Print_UTF8Str_By_UTF16Str(out, (WORD*)pHomophone); fputc('/n', out); delete[] pHomophone; } } fclose(out); } 打印音节分类表 // 打印音节分类表 VOID PrintSyllableclass(const WCHAR* outFile, BOOL isDigitTone, BOOL isUppercase) { FILE* out = _wfopen(outFile, L"wt"); if(out == NULL)return; // 打印字节序标记 CUnicodeConverter::Print_UTF8_BOM(out); // 打印音节 WCHAR pSyllable[16]; for (INT i = 0; i < Pinyin::SYLLABLE_NUM; i++) { Pinyin::Syllable(pSyllable, i, isDigitTone, isUppercase); CUnicodeConverter::Print_UTF8Str_By_UTF16Str(out, (WORD*)pSyllable); fputc('/n', out); } fclose(out); }