ASP自定義函式集

2021-04-16 01:49:05 字數 3432 閱讀 7731

for dig=1 to len(utfstr)

'如果utf8編碼文字以%開頭則進行轉換

if mid(utfstr,dig,1)="%" then

'utf8編碼文字大於8則轉換為漢字

if len(utfstr) >= dig+8 then

gbstr=gbstr & convchinese(mid(utfstr,dig,9))

dig=dig+8

else

gbstr=gbstr & mid(utfstr,dig,1)

end if

else

gbstr=gbstr & mid(utfstr,dig,1)

end if

next

utf2gb=gbstr

end function

'utf8編碼文字將轉換為漢字

function convchinese(x)

a=split(mid(x,2),"%")

i=0

j=0

for i=0 to ubound(a)

a(i)=c16to2(a(i))

next

for i=0 to ubound(a)-1

digs=instr(a(i),"0")

unicode=""

for j=1 to digs-1

if j=1 then

a(i)=right(a(i),len(a(i))-digs)

unicode=unicode & a(i)

else

i=i+1

a(i)=right(a(i),len(a(i))-2)

unicode=unicode & a(i)

end if

next

if len(c2to16(unicode))=4 then

convchinese=convchinese & chrw(int("&h" & c2to16(unicode)))

else

convchinese=convchinese & chr(int("&h" & c2to16(unicode)))

end if

next

end function

'二進位制**轉換為十六進製制**

function c2to16(x)

i=1

for i=1 to len(x) step 4

c2to16=c2to16 & hex(c2to10(mid(x,i,4)))

next

end function

'二進位制**轉換為十進位制**

function c2to10(x)

c2to10=0

if x="0" then exit function

i=0

for i= 0 to len(x) -1

if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)

next

end function

'十六進製制**轉換為二進位制**

function c16to2(x)

i=0

for i=1 to len(trim(x))

tempstr= c10to2(cint(int("&h" & mid(x,i,1))))

do while len(tempstr)<4

tempstr="0" & tempstr

loop

c16to2=c16to2 & tempstr

next

end function

'十進位制**轉換為二進位制**

function c10to2(x)

mysign=sgn(x)

x=abs(x)

digs=1

do if x<2^digs then

exit do

else

digs=digs+1

end if

loop

tempnum=x

i=0

for i=digs to 1 step-1

if tempnum>=2^(i-1) then

tempnum=tempnum-2^(i-1)

c10to2=c10to2 & "1"

else

c10to2=c10to2 & "0"

end if

next

if mysign=-1 then c10to2="-" & c10to2

end function

'-------------------------------

'gb轉utf8--將gb編碼文字轉換為utf8編碼文字

function toutf8(szinput)

dim wch, uch, szret

dim x

dim nasc, nasc2, nasc3

'如果輸入引數為空,則退出函式

if szinput = "" then

toutf8 = szinput

exit function

end if

'開始轉換

for x = 1 to len(szinput)

'利用mid函式分拆gb編碼文字

wch = mid(szinput, x, 1)

'利用ascw函式返回每乙個gb編碼文字的unicode字元**

'注:asc函式返回的是ansi 字元**,注意區別

nasc = ascw(wch)

if nasc < 0 then nasc = nasc + 65536

if (nasc and &hff80) = 0 then

szret = szret & wch

else

if (nasc and &hf000) = 0 then

uch = "%" & hex(((nasc / 2 ^ 6)) or &hc0) & hex(nasc and &h3f or &h80)

szret = szret & uch

else

'gb編碼文字的unicode字元**在0800 - ffff之間採用三位元組模版

uch = "%" & hex((nasc / 2 ^ 12) or &he0) & "%" & _

hex((nasc / 2 ^ 6) and &h3f or &h80) & "%" & _

hex(nasc and &h3f or &h80)

szret = szret & uch

end if

end if

next

toutf8 = szret

end function

%>

ASP中和星期有關的自定義函式

最近有乙個計算周的需要,看了網上現成的 不太合適,只好自己動手了。預設把該年第乙個星期一作為第一周的開始。計算某年第一周開始日期 function firstday inputyear for i cdate inputyear 1 1 to cdate inputyear 1 7 if weekd...

自定義函式 Excel之自定義函式

在excel中,當系統函式不能滿足我們的需求時候,我們可以使用vba自定義函式,如抓取網頁資料,翻譯詞彙,手機號歸屬地查詢等。下面將介紹2個自定義函式,idymd函式 身份證年月日性別 通過身份證號,返回性別,出生年月日。語法 idymd id 引數 id,身份證號,預設身份證長度18位。vba 如...

自定義函式

使用者自定義函式是sqlserver的資料庫物件,他不能應用於一系列改變資料庫狀態的操作。但它可以像系統函式那樣在查詢中或儲存過程中等中的程式段中使用。也可以像儲存過程一樣通過execute命令來執行,使用者自定義函式中儲存了transact sql可以返回一定的值。在sqlserver中根據函式返...