|
发表于 2003-11-4 23:45:46
|
显示全部楼层
- #include <list>
- #include <list>
- #include <fstream>
- using namespace std;
- struct element{
- char code[10];
- char value[50];
- };
- bool loadfromfile(list<element>& elist,const char*filename)
- {
- ifstream ifs(filename);
- if(!ifs)
- return false;
- element e;
- char line[300];
- //ifs>>line;
- while(ifs){
- ifs.getline(line,300);
- memset(&e,0,sizeof(e));
- char *p=line;
- while((unsigned char)(*p)>=0x80) p++;
- if(p == line)
- continue;
- memcpy(e.value,line,p-line);
- char *ptags=p;
- while(isalpha(*p)) p++;
- if(p == ptags)
- continue;
- memcpy(e.code,ptags,p-ptags);
- elist.push_back(e);
- //ifs>>line;
- }
- ifs.close();
- return true;
- }
- bool savetofile(const char*filename,const list<element>& elist)
- {
- ofstream ofs(filename);
- if(!ofs)
- return false;
- for(list<element>::const_iterator iter = elist.begin();
- iter != elist.end();iter ++)
- ofs<<iter->code<<" "<<iter->value<<endl;
- ofs.close();
- return true;
- }
- inline bool operator <(const element &e1,const element &e2)
- {
- return strcmp(e1.code,e2.code) == -1;
- }
- main(int argc,char**argv)
- {
- if(argc !=3){
- perror("program inputfile outputfile");
- exit(1);
- }
- list<element> elist;
- loadfromfile(elist,argv[1]);
- elist.sort();
- savetofile(argv[2],elist);
- }
复制代码
转换程序如上
用法
转换程序 码表.txt wbx.mb
转换完了后直接放到fcitx的输入法目录代替某一个文件就可以了
码表.txt可以使用 附件中的输入法逆转换转换成文本形式
如果不知道怎样转换和可以上网查找
www.google.com
ime 逆转换
得到码表就可以用了
全部转换完后可以看他们的输入法 到时就知道你是使用哪个输入法了 |
|