新年了,給自己買一個(gè)禮物,獎(jiǎng)勵(lì)一下自己一年辛勤的勞動(dòng)。
I966還是一部不錯(cuò)的電話,用了一天,感覺到了國(guó)產(chǎn)電子產(chǎn)品在不斷的進(jìn)步。原來我用的是Nokia6021,我有463個(gè)聯(lián)系人共計(jì)1000多個(gè)電話號(hào)碼、電子郵件和地址等信息。要全部導(dǎo)在新的電話中也是一件需要?jiǎng)幽X筋的工作。
Nokia有PC套件,所有的電話簿都會(huì)同步在Outlook中。
第一步,我先把所有的Outlook聯(lián)系人選擇導(dǎo)出成Windows以逗號(hào)分隔的CSV文件。這實(shí)際上是一種文本文件。
第二步,用Excel打開這個(gè)導(dǎo)出的文件,把第一行編輯成這10列:
---------------------------------------------------------------------
姓名,群組,移動(dòng)電話,家庭電話,商務(wù)電話,傳真,其它電話,電子郵件,地址,備注
---------------------------------------------------------------------
這時(shí)候,會(huì)發(fā)現(xiàn)所有長(zhǎng)的電話號(hào)碼都變成了指數(shù)表示方式,如“139+E8”,需要把這些列進(jìn)行單元格式轉(zhuǎn)換變?yōu)椤皵?shù)值”,然后再把所有的單元格轉(zhuǎn)換為“文本”。注意:這樣會(huì)有一個(gè)結(jié)果,區(qū)號(hào)前面的0會(huì)被去掉,需要手工補(bǔ)回!
第三步,這是是大量的手工調(diào)整工作。因?yàn)镺UTLOOK轉(zhuǎn)換出來的文件有幾十個(gè)字段,而聯(lián)想格式只有10個(gè)列。先去掉沒有用的空字段,然后把其他各個(gè)欄目的內(nèi)容分別移動(dòng)到對(duì)應(yīng)的新的列中。注意在同一行中移動(dòng),以免把電話號(hào)安錯(cuò)人。這樣直到整個(gè)表只有上述10列為止。
第四步,把EXCEL另存為CSV格式文件,然后用文本編輯器打開,推薦用UltraEdit32編輯。首先全局把所有的雙引號(hào)替換為什么都沒有(不是空格),然后保存。
第五步,轉(zhuǎn)換成聯(lián)想格式的文本文件。聯(lián)想格式的文本文件是每個(gè)列都帶引號(hào)的CSV文件。一個(gè)一個(gè)加太費(fèi)勁了,使用編輯器的紅替換也很難做到盡善盡美。于是我寫了一段perl程序腳本,用來自動(dòng)的把所有的有內(nèi)容的字段加上引號(hào)。腳本代碼如下:
tel.pl
#!c://perl//bin//perl.exe
####################################
#"姓名","群組" ,"移動(dòng)電話" ,"家庭電話","商務(wù)電話" ,"傳真","其它電話" ,"電子郵件","地址","備注"
#"張峰","未分組","139xxxxxxxx","" ,"xxxxxxxxx","" ,"133xxxxxxxx","","","","","","",""
####################################
$filename_src = @ARGV[0];
$filename_out = "tel.csv";
unless (open (SRCFILE, "<$filename_src"))
{
die ("/n錯(cuò)誤:不能打開你指定的文件:$filename_src/n");
}
unless (open (OUTFILE, ">$filename_out"))
{
die ("/n錯(cuò)誤:不能打開你指定的文件:$filename_out/n");
}
while(<SRCFILE>)
{
chomp;
@line = split(/,/,$_);
if($line[0] ne "")
{
$a1 = "/"$line[0]/"";
}
else
{
$a1 = "";
}
if($line[1] ne "")
{
$a2 = "/"$line[1]/"";
}
else
{
$a2 = "";
}
if($line[2] ne "")
{
$a3 = "/"$line[2]/"";
}
else
{
$a3 = "";
}
if($line[3] ne "")
{
$a4 = "/"$line[3]/"";
}
else
{
$a4 = "";
}
if($line[4] ne "")
{
$a5 = "/"$line[4]/"";
}
else
{
$a5 = "";
}
if($line[5] ne "")
{
$a6 = "/"$line[5]/"";
}
else
{
$a6 = "";
}
if($line[6] ne "")
{
$a7 = "/"$line[6]/"";
}
else
{
$a7 = "";
}
if($line[7] ne "")
{
$a8 = "/"$line[7]/"";
}
else
{
$a8 = "";
}
if($line[8] ne "")
{
$a9 = "/"$line[8]/"";
}
else
{
$a9 = "";
}
if($line[9] ne "")
{
$a10 = "/"$line[9]/"";
}
else
{
$a10 = "";
}
PRint OUTFILE "$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10/n";
}
close(SRCFILE);
close(OUTFILE);
第七步,腳本使用ActivePerl解釋器解釋運(yùn)行(可以從網(wǎng)上搜索下載安裝,免費(fèi)的),命令行如下:
perl tel.pl telbook3.csv
第八步,執(zhí)行完后,會(huì)生成一個(gè)tel.csv的文件。這個(gè)文件就是接近成品了。在i966電話上建立一個(gè)所有字段都有內(nèi)容的聯(lián)系人,通過“工具”-“內(nèi)存管理”-“導(dǎo)出”功能導(dǎo)出這個(gè)聯(lián)系人,然后通過藍(lán)牙把這個(gè)文件傳到PC上,用UltraEdit打開,會(huì)發(fā)現(xiàn)這個(gè)文件是“U-DOS”格式,也就是unicode的一種。我們把剛才那個(gè)半成品文件的內(nèi)容選擇轉(zhuǎn)貼到這個(gè)文件里面,保存后,就形成了成品文件。然后用藍(lán)牙把文件傳送回電話的內(nèi)存,選擇導(dǎo)入即可完成全部的電話簿導(dǎo)入工作了。
這一過程可是夠費(fèi)勁的,為此還專門寫了一個(gè)程序。我的職業(yè)是一個(gè)網(wǎng)管,因此編程什么的也還比較熟練。整個(gè)過程大約用了2小時(shí)吧。
順便提一下:我感覺國(guó)產(chǎn)電話的設(shè)計(jì)相當(dāng)簡(jiǎn)潔,符合中國(guó)人的習(xí)慣。比如說日程安排這個(gè)我非常常用的功能,i966上面就只有一項(xiàng)日程安排設(shè)定。而Nokia上面被分為“會(huì)議”“紀(jì)念日”“備忘”等若干項(xiàng),其實(shí)盡可以被一項(xiàng)備忘錄所代替。
祝大家使用愉快,希望朋友們支持中國(guó)設(shè)計(jì)、中國(guó)制造,愿我們的民族工業(yè)更強(qiáng)大。
新聞熱點(diǎn)
疑難解答
圖片精選