日前公司产品的登陆功能做了部分调整.由于以前已经将登陆部分抽到头文件中本以为可以轻易完成.不想新功能的中需要额外的参数.除了调整之前的头文件之外还需要调整所有脚本,添加新参数.
我是一个懒鬼,这着实非我所欲!于是考虑了一下方便些的方案.想到了一个.
在原先的登陆功能中存在一个 username的参数.新功能中需要额外的 pkipassword 和signdata参数.于是添加了两个新的头文件.
一个名为PKI.H.作用是将定义一个数组.将username相关的pkipassword和signdata数据都放到这么一个3纬的数组里面,内容按username字母顺序排列.
两外一个finder.h作用是实现二分的根据输入参数获得的USERNAME查找对应的pkipassword和signdata数据.
下面是demo
PKI.H
char a[4][2][10]={
"aaaaa","a1",
"bbbbb","b1",
"ccccc","c1",
"ddddd","d1"
};
finder.h
char * find(char * username)
{
char b[5];
int start=0;
int end=3;
int tempi;
int i=2;
strcpy(b,username);
//b=lr_eval_string("{idContent}");
lr_output_message("%s",a[2][1]);
lr_output_message("a[2][0] is %s",a[2][0]);
lr_output_message("b is %s",b);
lr_output_message("%d",strcmp(b,a[i][0]));
while (!strcmp(b,a[i][0])==0) {
if (strcmp(b,a[i][0])>0) {
start=i;
i=(end+start)/2;
}else{
end=i;
i=(end+start)/2;
}
lr_output_message("%d",i);
}
return a[i][1];
}