/*
Microsoft Visual Studio .net 2003;Microsoft Visual c++ 编译通过。
输入:phonebook.csv 格式号码本(必须是这个名字)。
输出:phonebook.utpb 格式号码本。
phonebook.csv各字段如下所示(姓名,电话号码,组名):
蔡小萍,6821,同事
陈 瑶,1361190xxxx,朋友
陈 瑶,6848,家人
陈江山,1380168xxxx,其它
使用方法:将编译后的可执行程序如(utstarcom.exe)和号码本phonebook.csv(必须是这个名字)拷贝到c:/下面
运行utstarcom.exe后在c:/下生成phonebook.utpb即为小灵通电话本,然后在hotlink中导入小灵通。hotlink为UT小灵通的联机程序。
源码来源:《从智能手机到UT小灵通手机号码本的转换程序发布》http://laoshuwangxuetaoo.spaces.live.com/blog/cns!8a5c0a1b15db97a2!125.entry
*/
// Utstarcom.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "stdio.h"
int _tmain(int argc, _TCHAR* argv[])
{
#define S(a,b) hptmp=hp+a; strcpy(hptmp,b)
struct contact
{
int index;
int class_;
int null;
char name[40];
char code[1848];
int null5_16;
} a={0,0,0,"","",0};
char *hp,*hptmp,c;
static char header[2228]="";
char cclass[30];
FILE *fpout,*fpin;
hp=header;
S(0,"PC_PB");
S(0x64,"PC1.0");
S(0xc8,"/4");
S(0xcc,"/1");
S(0xcd,"Index");
S(0xe4,"/4");
S(0xe8,"/1");
S(0xe9,"群组");
S(0x11c,"/xc");
S(0x120,"/1");
S(0x121,"姓名");
S(0x138,"/x18");
S(0x13c,"/1");
S(0x13d,"号码");
S(0x484,"/1");
S(0x485,"家庭");
S(0x4a0,"/1");
S(0x4a1,"朋友");
S(0x4bc,"/1");
S(0x4bd,"同事");
S(0x4d8,"/1");
S(0x4d9,"同学");
S(0x4f4,"/1");
S(0x4f5,"重要人士");
S(0x510,"/1");
S(0x511,"合作伙伴");
S(0x52c,"/1");
S(0x52d,"其他");
S(0x548,"/1");
S(0x549,"黑名单");
S(0x8a8,"/x10");
S(0x8ac,"/1");
S(0x8b0,"/xe8");
S(0x8b1,"/3");
fpout=fopen("c://phonebook.utpb","wb");
if(fpout==NULL)
printf("can not create file in dir c:///n");
fwrite(hp,2228,1,fpout);
printf("write the header...... over/n");
printf("The phonebook is:/n/n");
fpin=fopen("c://phonebook.csv","rb");
if(fpin==NULL)
printf("can not open file in dir c://phonebook.csv/n");
int i=0;
while(!feof(fpin))
{
i++;
a.index=i;
a.null=0;
for (int ii=0;ii<40;ii++) a.name[ii]='/0';
for (int ii=0;ii<1848;ii++) a.code[ii]='/0';
for (int ii=0;ii<30;ii++) cclass[ii]='/0';
for (int ii=0;(c=fgetc(fpin))!= ','; ii++) {a.name[ii]=c;}
for (int ii=0;(c=fgetc(fpin))!= ','; ii++) {a.code[ii]=c;}
for (int ii=0;(c=fgetc(fpin))!='/x0d'; ii++) { cclass[ii]=c;}
c=fgetc(fpin);
a.class_=6;
if(strcmp(cclass,"家庭")==0) a.class_=0;
if(strcmp(cclass,"朋友")==0) a.class_=1;
if(strcmp(cclass,"同事")==0) a.class_=2;
if(strcmp(cclass,"同学")==0) a.class_=3;
if(strcmp(cclass,"重要人士")==0) a.class_=4;
if(strcmp(cclass,"合作伙伴")==0) a.class_=5;
if(strcmp(cclass,"其他")==0) a.class_=6;
if(strcmp(cclass,"黑名单")==0) a.class_=7;
a.null5_16=16;
fwrite(&a,sizeof(struct contact),1,fpout);
printf("姓名=%12s 号码=%20s, 类别=%1d/n",a.name,a.code,a.class_);
}
fclose(fpin);
fclose(fpout);
printf("/n/nThe output file phonebook.utpb was create in c://");
return 0;
}
//程序下载地址:“福建旅游之窗”(www.fjta.com)>>“下载中心”>>其它,点击: UT斯达康电话本转换程序
// 其它转换电话本的方式:超级小灵簿 http://www.cyllular.com/pimweb/contact/index.jsp