打印汉字拼音列表
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);
}
打印同音字表
// 打印字节序标记
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);
}
打印音节分类表
// 打印字节序标记
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);
}