{S0}简介
的阿拉伯字母的增强版本,是用波斯语写。这些增强功能包括用于显示一些包括白韫六,张彻,Zheh,GAF,的KAF波斯的波斯特定字母一些额外的符号。
几个月前,我开发了一个简单的数据收集了Symbol MC3000的Windows CE 4.2为基础的终端加入波斯支持我的程序(你可以阅读其规格方案。
读者请参阅完整的文档的原始文章,我只解释一下我的修改原代码。修改
首先,我在我的代码定义N_DISTINCT_CHARACTERS某处如下:#define N_DISTINCT_CHARACTERS 205
ArabicReverse功能需要进行任何修改。
在Arabize函数的修改必须应用如下(只注释行添加或更改):{C}
在上面的代码,我们增加了五个行,其中包括波斯特定的字母,到原来的"阿拉伯字母状态数组状态。
以下修改也必须作出isFromTheSet1 isFromTheSet2方法,来解释如何必须表明我们的其他字母时,它们与其他字母:
|哈米德礼穆罕默迪//////////////////////////////////////////////////////////////////////
BOOL BzArabicRender::isFromTheSet1(WCHAR ch)
{
static WCHAR theSet1[27]={//changed from 22 to 27
0x62c, 0x62d, 0x62e, 0x647, 0x639, 0x63a, 0x641, 0x642,
0x62b, 0x635, 0x636, 0x637, 0x643, 0x645, 0x646, 0x62a,
0x644, 0x628, 0x64a, 0x633, 0x634, 0x638,
0x6Af, 0x6A9, 0x686, 0x67E, 0x626
//our additional letters: Gaf, Persian Keh,
//Cheh, Peh, Yeh with hamza above
};
int i = 0;
while (i < 27)//changed from 22 to 27
{
if(ch == theSet1[i])
return TRUE;
++i;
}
return FALSE;
}
//////////////////////////////////////////////////////////////////////
BOOL BzArabicRender::isFromTheSet2(WCHAR ch)
{
static WCHAR theSet2[13]={//changed from 12 to 13
0x627, 0x623, 0x625, 0x622, 0x62f, 0x630, 0x631, 0x632,
0x648, 0x624, 0x629, 0x649,
0x698//our additional letter: Zheh
};
int i = 0;
while (i < 13)//changed from 12 to 13
{
if(ch == theSet2[i])
return TRUE;
++i;
}
return FALSE;
}