📄 mmibookphonebook.c
字号:
{
memset(l_phb_sort_index,0,sizeof(l_phb_sort_index));
for( i=0,j=0;i<RecordLen;i++ )
{
if( CheckFlag(i) )
{
l_phb_sort_index[j].name=GetShortName(l_phb_index[i].name);
l_phb_sort_index[j].index=i;
j=j+1;
}
}
if( j>1 ) ChoiceSort(l_phb_sort_index,j);
}
}
static void ChoiceSort(T_MFW_PHB_SORT_INDEX *SortData,int RecordLen)//选择法排序
{
T_MFW_PHB_SORT_INDEX TempRecord;
int i,j,k;
for( i=0;i<RecordLen-1;i++ )
{
k=i;
for( j=i+1;j<RecordLen;j++ )
if( SortData[j].name<SortData[k].name ) k=j;
TempRecord.index=SortData[k].index;
TempRecord.name=SortData[k].name;
SortData[k].index=SortData[i].index;
SortData[k].name=SortData[i].name;
SortData[i].index=TempRecord.index;
SortData[i].name=TempRecord.name;
}
}
int SetSearchLocation(T_SearchResult *SortData,int Index)
{
int s,j,m,k;
T_SearchResult TempRecord;
// char temp[50];/*2004/04/07,talcon delete*/
int backindex;
TempRecord.index=SortData[Index].index;
TempRecord.selectflag=SortData[Index].selectflag;
switch( SearchTotal )
{
case 1:
{
backindex=Index;
}
break;
case 2:
{
if( Index==1 )
{
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[Index-1].index].name) )
{
SortData[Index].index=SortData[Index-1].index;
SortData[Index].selectflag=SortData[Index-1].selectflag;
SortData[Index-1].index=TempRecord.index;
SortData[Index-1].index=TempRecord.selectflag;
backindex=Index-1;
}
else backindex=Index;
}
else if( Index==0 )
{
if( GetShortName(l_phb_index[SortData[Index].index].name)>
GetShortName(l_phb_index[SortData[Index+1].index].name) )
{
SortData[Index].index=SortData[Index+1].index;
SortData[Index].selectflag=SortData[Index+1].selectflag;
SortData[Index+1].index=TempRecord.index;
SortData[Index+1].selectflag=TempRecord.selectflag;
backindex=Index+1;
}
else backindex=Index;
}
}
break;
default:
{
if( Index!=0 && Index!=SearchTotal-1 )
{
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[Index-1].index].name) )
{
s=0;
j=Index-1;
while( s<=j )
{
m=(s+j)/2;
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[m].index].name) )
j=m-1;
else s=m+1;
}
for( k=Index-1;k>=j+1;k-- )
{
SortData[k+1].index=SortData[k].index;
SortData[k+1].selectflag=SortData[k].selectflag;
}
SortData[j+1].index=TempRecord.index;
SortData[j+1].selectflag=TempRecord.selectflag;
backindex=j+1;
}
else if( GetShortName(l_phb_index[SortData[Index].index].name)>
GetShortName(l_phb_index[SortData[Index+1].index].name) )
{
s=Index+1;
j=SearchTotal-1;
while( s<=j )
{
m=(s+j)/2;
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[m].index].name) )
j=m-1;
else s=m+1;
}
for( k=Index;k<=j;k++ )
{
SortData[k].index=SortData[k+1].index;
SortData[k].selectflag=SortData[k+1].selectflag;
}
SortData[j].index=TempRecord.index;
SortData[j].selectflag=TempRecord.selectflag;
backindex=j;
}
else backindex=Index;
}
else if( Index==0 )
{
if( GetShortName(l_phb_index[SortData[Index].index].name)>
GetShortName(l_phb_index[SortData[Index+1].index].name) )
{
s=Index+1;
j=SearchTotal-1;
while( s<=j )
{
m=(s+j)/2;
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[m].index].name) )
j=m-1;
else s=m+1;
}
for( k=Index;k<=j;k++ )
{
SortData[k].index=SortData[k+1].index;
SortData[k].selectflag=SortData[k+1].selectflag;
}
SortData[j].index=TempRecord.index;
SortData[j].selectflag=TempRecord.selectflag;
backindex=j;
}
else backindex=Index;
}
else if( Index==SearchTotal-1 )
{
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[Index-1].index].name) )
{
s=0;
j=Index-1;
while( s<=j )
{
m=(s+j)/2;
if( GetShortName(l_phb_index[SortData[Index].index].name)<
GetShortName(l_phb_index[SortData[m].index].name) )
j=m-1;
else s=m+1;
}
for( k=Index-1;k>=j+1;k-- )
{
SortData[k+1].index=SortData[k].index;
SortData[k+1].selectflag=SortData[k].selectflag;
}
SortData[j+1].index=TempRecord.index;
SortData[j+1].selectflag=TempRecord.selectflag;
backindex=j+1;
}
else backindex=Index;
}
}
break;
}
return backindex;
}
int SetLocation(T_MFW_PHB_SORT_INDEX *SortData,int Index)
{
int s,j,m,k;
T_MFW_PHB_SORT_INDEX TempRecord;
//char temp[50];/*2004/04/07,talcon delete*/
int backindex;
TempRecord.name=SortData[Index].name;
TempRecord.index=SortData[Index].index;
switch( SearchTotal )
{
case 1:
{
backindex=Index;
}
break;
case 2:
{
if( Index==1 )
{
if( SortData[Index].name<SortData[Index-1].name )
{
SortData[Index].name=SortData[Index-1].name;
SortData[Index].index=SortData[Index-1].index;
SortData[Index-1].name=TempRecord.name;
SortData[Index-1].index=TempRecord.index;
backindex=Index-1;
}
else backindex=Index;
}
else if( Index==0 )
{
if( SortData[Index].name>SortData[Index+1].name )
{
SortData[Index].name=SortData[Index+1].name;
SortData[Index].index=SortData[Index+1].index;
SortData[Index+1].name=TempRecord.name;
SortData[Index+1].index=TempRecord.index;
backindex=Index+1;
}
else backindex=Index;
}
}
break;
default:
{
if( Index!=0 && Index!=SearchTotal-1 )
{
if( SortData[Index].name<SortData[Index-1].name )
{
s=0;
j=Index-1;
while( s<=j )
{
m=(s+j)/2;
if( SortData[Index].name<SortData[m].name )
j=m-1;
else s=m+1;
}
for( k=Index-1;k>=j+1;k-- )
{
SortData[k+1].name=SortData[k].name;
SortData[k+1].index=SortData[k].index;
}
SortData[j+1].name=TempRecord.name;
SortData[j+1].index=TempRecord.index;
backindex=j+1;
}
else if( SortData[Index].name>SortData[Index+1].name )
{
s=Index+1;
j=SearchTotal-1;
while( s<=j )
{
m=(s+j)/2;
if( SortData[Index].name<SortData[m].name )
j=m-1;
else s=m+1;
}
for( k=Index;k<=j;k++ )
{
SortData[k].name=SortData[k+1].name;
SortData[k].index=SortData[k+1].index;
}
SortData[j].name=TempRecord.name;
SortData[j].index=TempRecord.index;
backindex=j;
}
else backindex=Index;
}
else if( Index==0 )
{
if( SortData[Index].name>SortData[Index+1].name )
{
s=Index+1;
j=SearchTotal-1;
while( s<=j )
{
m=(s+j)/2;
if( SortData[Index].name<SortData[m].name )
j=m-1;
else s=m+1;
}
for( k=Index;k<=j;k++ )
{
SortData[k].name=SortData[k+1].name;
SortData[k].index=SortData[k+1].index;
}
SortData[j].name=TempRecord.name;
SortData[j].index=TempRecord.index;
backindex=j;
}
else backindex=Index;
}
else if( Index==SearchTotal-1 )
{
if( SortData[Index].name<SortData[Index-1].name )
{
s=0;
j=Index-1;
while( s<=j )
{
m=(s+j)/2;
if( SortData[Index].name<SortData[m].name )
j=m-1;
else s=m+1;
}
for( k=Index-1;k>=j+1;k-- )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -