當前位置:編程學習大全網 - 源碼破解 - 怎麽樣在excel中批量把漢字姓名轉換為區位碼?

怎麽樣在excel中批量把漢字姓名轉換為區位碼?

不知道這阿行!~

每年壹度的全國普通高等學校招生報名過程中,考生都要填寫報名信息卡,全體同學很緊張地查閱自己姓名中每個漢字對應的國際區位碼,往往填卡時間都很緊,全班同學都搶壹本區位碼手冊。筆者編寫了壹個VFP小程序,利用學校的學生信息數據庫表G97.DBF,新增加區位碼字段(字符型,16位),運行該程序即刻看到新增加區位碼字段已經填好了,再將學號、姓名、區位碼三個字段壹起打印出來,用起來十分方便。

每個漢字編碼方案對應有壹個漢字轉換程序,把它們轉換成統壹的機內碼(即ASC碼),將接收來的兩個字節(國標碼)在最高位加“1”,即得到內碼。

國際區位碼+2020H=國標碼,國標碼+8080H=內碼,所以,國際區位碼=內碼-A0A0H。

每個漢字由兩個字節構成,國際區位碼的區碼可以通過函數substr( )取漢字的前壹字節(即前半個漢字)的ASC碼減去160(A0H)得到,位碼可以通過取漢字的後壹字節的ASC碼減去160(A0H)得到,如:“重”字區位碼為1702,“重”字前後字節的ASC碼分別為177和162,區碼為 177-160=17,位碼為 162-160=2。

程序由兩層循環構成,外層循環從G97.DBF文件中逐條取記錄,並用replace with替換命令填寫“區位碼”字段,內層循環逐字求出“姓名”字段的區位碼,由if - endif判斷語句去除“姓名”字段中的單字節字符。該程序由VFP6.0編制,做適當修改可以變為FoxBASE+程序。

*轉換區位碼程序清單

*創建並定義單文檔窗口wn1,作為信息提示界面

define window win1 from 1,1 to 30,90 font ′楷體′,14;

style ′B′title ′信息窗口′ panel close nofloat grow nominimize zoom color b/gr+

*顯示自定義窗口wn1

show window win1

*激活自定義窗口wn1

activate window win1

*打開數據庫...並在窗口wn1中給出提示

if!DBUSED(〃G97〃)

set talk off

@4,4 say〃Now, the G97.DBF is being changed! 〃

@8,5 say〃Changed〃

@8,14 say〃.....〃

USE 〃D:\FOX\G97.DBF〃

&&數據庫名及位置可自己調整

ENDIF

*統計當前數據庫表中記錄總數

n=reccount()

i=1 &&變量i是表記錄循環的循環變量

do while i〈=n

@8,22 say i

qwma=〃 〃

&&記錄i的〃姓名〃字段的區位碼變量qwma初始化

go i

xm=TRIM(姓名)

&&去掉〃姓名〃字段的尾部空格

sL=len(xm) &&計算〃姓名〃字段的長度

j=1

do while j〈=sL

*連續取單字節子串b1,b2

b1=substr(xm,j,1)

b2=substr(xm,j+1,1)

*取子串b1,b2的機內碼(即ASC碼)

num1=asc(b1)

num2=asc(b2)

*判斷是否為全角字符(漢字),是則計算出區碼qum和位碼weim

if (num1〉160) and (num2〉160) and (j〈sL)

qum=num1-160

weim=num2-160

*將區位碼存入變量qwma,對qum〈10(weim〈10)情況

*數字前添0,如〃8〃變為〃08〃

do case

case(qum〉9) and (weim〉9)

qwma=qwma+〃 〃+str(qum,2)+str(weim,2)

case(qum〉9) and (weim〈=9)

qwma=qwma+〃 〃+str(qum,2)+〃0〃+str(weim,1)

case(qum〈=9) and (weim〉9)

qwma=qwma+〃 〃+〃0〃+str(qum,1)+str(weim,2)

case (qum〈=9) and (weim〈=9)

qwma=qwma+〃 〃+〃0〃+str(qum,1)+〃0〃+str(weim,1)

endcase

j=j+1 &&字節循環變量增1

endif

j=j+1 &&字節循環變量增1

enddo

replace 區位碼 with qwma

&&將該記錄〃區位碼〃字段替換為區位碼qwma

i=i+1&&下壹記錄

enddo

wait〃按任意鍵...下壹步瀏覽或修改數據〃 window at 30,10 timeout 15

zoom window win1 max &&使窗口wn1最大化

browse &&查看數據庫表

release window win1

use

return

  • 上一篇:qq飛車回歸用戶禮包在哪裏領取
  • 下一篇:2020年高考什麽時候報誌願?幾月幾號
  • copyright 2024編程學習大全網