tcmatch in pb5

English support forum

Moderators: white, Hacker, petermad, Stefan2

User avatar
Samuel
Power Member
Power Member
Posts: 1930
Joined: 2003-08-29, 15:44 UTC
Location: Germany, Brandenburg an der Havel
Contact:

Post by *Samuel »

I also mentioned this.
Is 1.22 working?

I just released 1.21 too quick.
cheming
Member
Member
Posts: 153
Joined: 2004-05-07, 14:38 UTC
Location: China

Post by *cheming »

2Samuel

Please tried this:

// ------------------------------------------------------------------------------------------------
// compare the english PinYin "Eng" with the chinese char "Chn" (thanks to Christian Ghisler and Shanny)
int PinYinMatch(WCHAR Eng,WCHAR Chn)
{
if(!use_pinyin) return 0;
if(Eng==Chn) return 1; // add by Che Ming
if(Chn==0x3007) return (Eng=='l');
else if(Chn>=0x4E00 && Chn<=0x9FA5){
LoadPinYinTable();
WORD Dbl=PinYinTable[Chn-0x4E00];
WCHAR Eng1=(Dbl & 0x1F)-1+'a';
WCHAR Eng2=((Dbl>>5)&0x1F)-1+'a';
WCHAR Eng3=((Dbl>>10)&0x1F)-1+'a';
BOOL result=(Eng==Eng1 || Eng==Eng2 || Eng==Eng3);
if(!result){ // there are only 3 ideographs with more than 3 spellings:
switch (Chn){
case 0x7AD3: // qian1 fen1 zhi1 yi1 gong1 sheng1
result=(Eng=='y' || Eng=='g' || Eng=='s');
break;
case 0x7AD5: // shi2 fen1 zhi1 yi1 gong1 sheng1
result=(Eng=='y' || Eng=='g');
break;
case 0x7AE1: // yi1 gong1 sheng1 bai3 bei4
result=(Eng=='b');
break;
}
}
return result;
}else return false;
}

// ------------------------------------------------------------------------------------------------
// compare the english PinYin string "Filter" with the chinese string "Filename"
int PinYinStringMatch(const wstring Filename,const wstring Filter)
{
if(!use_pinyin) return 0;
for(int i=0;i<(int)Filename.length();i++){
int z=i;
for(int j=0;j<(int)Filter.length();j++){
if(z>=(int)Filename.length() || !PinYinMatch(Filter[j],Filename[z])) break; // PinYin not found for this position
z++;
if(j==Filter.length()-1) return 1; // PinYin found
}
}
return 0;
}
cheming
Member
Member
Posts: 153
Joined: 2004-05-07, 14:38 UTC
Location: China

Post by *cheming »

2Samuel:

I tried 1.22, it seems works fine for me. :-)

when typing "wbjxyz", it will display this file only: w北京xyz.ini
Great work!
Last edited by cheming on 2009-06-16, 16:37 UTC, edited 1 time in total.
cheming
Member
Member
Posts: 153
Joined: 2004-05-07, 14:38 UTC
Location: China

Post by *cheming »

I think your addon for quicksearch is the most handy tool since the TC was born. :-)

Thank you, Samuel!
User avatar
Samuel
Power Member
Power Member
Posts: 1930
Joined: 2003-08-29, 15:44 UTC
Location: Germany, Brandenburg an der Havel
Contact:

Post by *Samuel »

Your welcome.

Your code also did work.
I changed it in a similar way some minutes ago.
Post Reply