青春与成就 是人生的两大财富 / 当你享受青春时 你必须要吃点苦 / 当你失去青春时 成就会成为你的拥有 / 否则 青春之后就一无所有

发布新日志

  • 转:获得汉字字符串拼音首字母

    2008-08-29 14:03:10

    转自:http://dev.csdn.net/article/39/39914.shtm

    '返回给定字符串的首字母

    Function IndexCode(ByVal IndexTxt As String) As String

        Dim i As Integer

        For i = 1 To IndexTxt.Length

            IndexCode = IndexCode & GetOneIndex(Mid(IndexTxt, i, 1))

        Next

    End Function

     

    '得到单个字符的首字母

    Private Function GetOneIndex(ByVal OneIndexTxt As String) As String

        If Asc(OneIndexTxt) >= 0 And Asc(OneIndexTxt) < 256 Then

            GetOneIndex = OneIndexTxt

        Else

            GetOneIndex = GetX(CInt(Format((Asc(OneIndexTxt) + 65536) \ 256 - 160, "00") & Format((Asc(OneIndexTxt) + 65536) Mod 256 - 160, "00")))

        End If

    End Function

     

    '根据区位得到首字母

    Private Function GetX(ByVal GBCode As Integer) As String

        '判断一级汉字

        If GBCode >= 1601 And GBCode < 1637 Then GetX = "A"

        If GBCode >= 1637 And GBCode < 1833 Then GetX = "B"

        If GBCode >= 1833 And GBCode < 2078 Then GetX = "C"

        If GBCode >= 2078 And GBCode < 2274 Then GetX = "D"

        If GBCode >= 2274 And GBCode < 2302 Then GetX = "E"

        If GBCode >= 2302 And GBCode < 2433 Then GetX = "F"

        If GBCode >= 2433 And GBCode < 2594 Then GetX = "G"

        If GBCode >= 2594 And GBCode < 2787 Then GetX = "H"

        If GBCode >= 2787 And GBCode < 3106 Then GetX = "J"

        If GBCode >= 3106 And GBCode < 3212 Then GetX = "K"

        If GBCode >= 3212 And GBCode < 3472 Then GetX = "L"

        If GBCode >= 3472 And GBCode < 3635 Then GetX = "M"

        If GBCode >= 3635 And GBCode < 3722 Then GetX = "N"

        If GBCode >= 3722 And GBCode < 3730 Then GetX = "O"

        If GBCode >= 3730 And GBCode < 3858 Then GetX = "P"

        If GBCode >= 3858 And GBCode < 4027 Then GetX = "Q"

        If GBCode >= 4027 And GBCode < 4086 Then GetX = "R"

        If GBCode >= 4086 And GBCode < 4390 Then GetX = "S"

        If GBCode >= 4390 And GBCode < 4558 Then GetX = "T"

        If GBCode >= 4558 And GBCode < 4684 Then GetX = "W"

        If GBCode >= 4684 And GBCode < 4925 Then GetX = "X"

        If GBCode >= 4925 And GBCode < 5249 Then GetX = "Y"

        If GBCode >= 5249 And GBCode <= 5589 Then GetX = "Z"

     

        '判断二级汉字

        If GBCode >= 5601 And GBCode <= 8794 Then

            Dim CodeData As String

            CodeData = "cjwgnspgcenegypbtwxzdxykygtpjnmjqmbsgzscyjsyyfpggbzgydywjkgaljswkbjqhyjwpdzlsgmrybywwccgznkydgttngjeyekzydcjnmcylqlypyqbqrpzslwbdgkjfyxjwcltbncxjjjjcxdtqsqzycdxxhgckbphffsspybgmxjbbyglbhlssmzmpjhsojnghdzcdklgjhsgqzhxqgkezzwymcscjnyetxadzpmdssmzjjqjyzcjjfwqjbdzbjgdnzcbwhgxhqkmwfbpbqdtjjzkqhylcgxfptyjyyzpsjlfchmqshgmmxsxjpkdcmbbqbefsjwhwwgckpylqbgldlcctnmaeddksjngkcsgxlhzaybdbtsdkdylhgymylcxpycjndqjwxqxfyyfjlejbzrwccqhqcsbzkymgplbmcrqcflnymyqmsqtrbcjthztqfrxchxmcjcjlxqgjmshzkbswxemdlckfsydsglycjjssjnqbjctyhbftdcyjdgwyghqfrxwckqkxebpdjpxjqsrmebwgjlbjslyysmdxlclqkxlhtjrjjmbjhxhwywcbhtrxxglhjhfbmgykldyxzpplggpmtcbbajjzyljtyanjgbjflqgdzyqcaxbkclecjsznslyzhlxlzcghbxzhznytdsbcjkdlzayffydlabbgqszkggldndnyskjshdlxxbcghxyggdjmmzngmmccgwzszxsjbznmlzdthcqydbdllscddnlkjyhjsycjlkohqasdhnhcsgaehdaashtcplcpqybsdmpjlpcjaqlcdhjjasprchngjnlhlyyqyhwzpnccgwwmzffjqqqqxxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmcsjzldbndcfcxyhlschycjqppqagmnyxpfrkssbjlyxyjjglnscmhcwwmnzjjlhmhchsyppttxrycsxbyhcsmxjsxnbwgpxxtaybgajcxlypdccwqocwkccsbnhcpdyznbcyytyckskybsqkkytqqxfcwchcwkelcqbsqyjqcclmthsywhmktlkjlychwheqjhtjhppqpqscfymmcmgbmhglgsllysdllljpchmjhwljcyhzjxhdxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsdymjshxpjxomyqknmyblrthbcftpmgyxlchlhlzylxgsssscclsldclepbhshxyyfhbmgdfycnjqwlqhjjcywjztejjdhfblqxtqkwhdchqxagtlxljxmsljhdzkzjecxjcjnmbbjcsfywkbjzghysdcpqyrsljpclpwxsdwejbjcbcnaytmgmbapclyqbclzxcbnmsggfnzjjbzsfqyndxhpcqkzczwalsbccjxpozgwkybsgxfcfcdkhjbstlqfsgdslqwzkxtmhsbgzhjcrglyjbpmljsxlcjqqhzmjczydjwbmjklddpmjegxyhylxhlqyqhkycwcjmyhxnatjhyccxzpcqlbzwwwtwbqcmlbmynjcccxbbsnzzljpljxyztzlgcldcklyrzzgqtgjhhgjljaxfgfjzslcfdqzlclgjdjcsnclljpjqdcclcjxmyzftsxgcgsbrzxjqqcczhgyjdjqqlzxjyldlbcyamcstylbdjbyregklzdzhldszchznwczcllwjqjjjkdgjcolbbzppglghtgzcygezmycnqcycyhbhgxkamtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkjsbgbmmcjssclpqpdxcdyykypcjddyygywchjrtgcnyqldkljczzgzccjgdyksgpzmdlcphnjafyzdjcnmwescsglbtzcgmsdllyxqsxsbljsbbsgghfjlwpmzjnlyywdqshzxtyywhmcyhywdbxbtlmswyyfsbjcbdxxlhjhfpsxzqhfzmqcztqcxzxrdkdjhnnyzqqfnqdmmgnydxmjgdhcdycbffallztdltfkmxqzdngeqdbdczjdxbzgsqqddjcmbkxffxmkdmcsychzcmljdjynhprsjmkmpcklgdbqtfzswtfgglyplljzhgjjgypzltcsmcnbtjbhfkdhbyzgkpbbymtdlsxsbnpdkleycjnycdykzddhqgsdzsctarlltkzlgecllkjljjaqnbdggghfjtzqjsecshalqfmmgjnlyjbbtmlycxdcjpldlpcqdhsycbzsckbzmsljflhrbjsnbrgjhxpdgdjybzgdlgcsezgxlblgyxtwmabchecmwyjyzlljjshlgndjlslygkdzpzxjyyzlpcxszfgwyydlyhcljscmbjhblyjlycblydpdqysxktbytdkdxjypcnrjmfdjgklccjbctbjddbblblcdqrppxjcglzcshltoljnmdddlngkaqakgjgyhheznmshrphqqjchgmfprxcjgdychghlyrzqlcngjnzsqdkqjymszswlcfqjqxgbggxmdjwlmcrnfkkfsyyljbmqammmycctbshcptxxzzsmphfshmclmldjfyqxsdyjdjjzzhqpdszglssjbckbxyqzjsgpsxjzqznqtbdkwxjkhhgflbcsmdldgdzdblzkycqnncsybzbfglzzxswmsccmqnjqsbdqsjtxxmbldxcclzshzcxrqjgjylxzfjphymzqqydfqjjlcznzjcdgzygcdxmzysctlkphtxhtlbjxjlxscdqccbbqjfqzfsltjbtkqbsxjjljchczdbzjdczjccprnlqcgpfczlclcxzdmxmphgsgzgszzqjxlwtjpfsyaslcjbtckwcwmytcsjjljcqlwzmalbxyfbpnlschtgjwejjxxglljstgshjqlzfkcgnndszfdeqfhbsaqdgylbxmmygszldydjmjjrgbjgkgdhgkblgkbdmbylxwcxyttybkmrjjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz"

            GetX = Mid(CodeData, (Microsoft.VisualBasic.Left(CStr(GBCode), 2) - 56) * 94 + (Microsoft.VisualBasic.Right(CStr(GBCode), 2)), 1)

        End If

    End Function

  • 转:汉字排序

    2008-08-29 13:49:13

    转自:http://topic.csdn.net/t/20050903/11/4247360.html

    Function   HZSort(ByVal   txt_DOC   As   String)   As   String  
       
          Dim   m,   n     As   Integer  
          Dim   l           As   Integer  
          Dim   HanZi()       As   String   *   1  
          Dim   tmp_Han       As   String  
          'Dim   txt_DOC       As   String  
           
          'txt_DOC   =   txtHzList.Text  
          l   =   Len(txt_DOC)  
          ReDim   HanZi(l   -   1)   
            
          '剔除非汉字   
          For   m   =   1   To   l  
              tmp_Han   =   Mid(txt_DOC,   m,   1)  
              If   Asc(tmp_Han)   <   0   Then  
                    HanZi(n)   =   tmp_Han  
                    n   =   n   +   1  
              End   If  
          Next   m  
          l   =   n   -   1   
            
          '排序汉字   
          ReDim   Preserve   HanZi(l)  
          For   m   =   0   To   (l   -   1)  
              For   n   =   (l   -   1)   To   m   Step   -1  
                  If   Asc(HanZi(n))   >   Asc(HanZi(n   +   1))   Then  
                        tmp_Han   =   HanZi(n)  
                        HanZi(n)   =   HanZi(n   +   1)  
                        HanZi(n   +   1)   =   tmp_Han  
                  End   If  
              Next   n  
          Next   m   
            
          '剔除重复字   
          n   =   0  
          For   m   =   1   To   l  
                  If   Asc(HanZi(m))   >   Asc(HanZi(m   -   1))   Then  
                        n   =   n   +   1  
                        HanZi(n)   =   HanZi(m)  
                  End   If  
          Next   m  
           
          HZSort   =   ""  
          For   m   =   0   To   n  
                  HZSort   =   HZSort   &   HanZi(m)  
          Next   m  
       
      End   Function  

  • 转:VBS的快速排序

    2008-07-08 16:15:16

    转自:http://www.51testing.com/?141956/action_viewspace_itemid_84696.html

    下面是VBS的快速排序代码,适合数字和字符串数组:

    Public Function QSort(ByRef ReArr, ByVal head,ByVall tail)
    ReArr是待排序数组,head和tail是该数组的最小下标和最大下标
    Dim lef,rig
    Dim pivot

    If head<tail,Then
    lef=head
    rig=tail
    pivot=ReArr(lef)
    While (lef<>rig)

    While (lef<rig and ReArr(rig)>=pivot)
    rig=rig-1
    Wend
    If lef<rig Then
    ReArr(lef)=ReArr(rig)
    lef=lef+1
    End If


    While (lef<rig and ReArr(lef)<=pivot)
     lef=lef+1
    Wend

    If lef<rig Then
    ReArr(rig)=ReArr(lef)
     rig=rig-1
    End If
    Wend

    ReArr(lef)=pivot
    call QSort(ReArr,head,lef-1)
    call QSort(ReArr,lef+1,tail)

    End If
    End Function

  • 转:VBScript字符串函数介绍

    2008-07-08 16:09:31

    转自:http://xz7.2000y.net/mb/2/ReadNews.asp?NewsID=466508

    1. Split(expression, delimiter, count, compare)
    返回基于 0 的一维数组,其中包含指定数目的子字符串。
    expression:必选。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。
    delimiter:可选。用于标识子字符串界限的字符。如果省略,使用空格 (" ") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。
    count:可选。被返回的子字符串数目,-1 指示返回所有子字符串。
    compare:可选。compare 参数可以有以下值:0 执行二进制比较;1 执行文本比较;2 执行基于数据库(在此数据库中执行比较)中包含的信息的比较。

    2. Replace(expression, find, replacewith, compare, count, start)
    返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。
    expression:必选。字符串表达式,包含要替换的子字符串。
    find:必选。被搜索的子字符串。
    replacewith:必选。用于替换的子字符串。
    start:可选。expression 中开始搜索子字符串的位置。如果省略,默认值为 1。
    count:可选。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。
    compare:可选。参数值同上。

    3. Mid(string, start, length)
    从字符串中返回指定数目的字符。
    string:字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。
    start:string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
    length:要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。

    4. LTrim(string), RTrim(string), Trim(string)
    返回不带前导空格 (LTrim)、后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本。
    string:参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null。

    5. InStr(start, string1, string2, compare)
    (InstrRev(start, string1, string2, compare))
    返回某字符串在另一字符串中从头部出现的位置
    (返回某字符串在另一字符串中从结尾出现的位置)。
    start:可选。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。
    string1:必选。接受搜索的字符串表达式。
    string2:必选。要搜索的字符串表达式。
    compare:可选。参数值同上。

    6. String(number, character)
    返回具有指定长度的、重复字符组成的字符串。
    number:返回字符串的长度。如果 number 参数包含 Null,则返回 Null。
    character:指定字符或字符串表达式的字符代码,其中字符串表达式的第一个字符用于组成返回的字符串。如果 character 参数包含 Null,则返回 Null。

    7. Space(number)
    返回由指定数目的空格组成的字符串。
    number:参数为字符串中用户所需的空格数。

    8. Left(string, length), Right(string, length)
    返回指定数目的从字符串的左边(右边)算起的字符。
    string:字符串表达式,其最左边(右边)的字符被返回。如果 string 参数中包含 Null,则返回 Null。
    length:数值表达式,指明要返回的字符数目。如果是 0,返回零长度字符串 ("");如果大于或等于 string 参数中的字符总数,则返回整个字符串。

    9. Len(string | varname)
    返回字符串内字符的数目,或是存储一变量所需的字节数。
    string:任意有效的字符串表达式。如果 string 参数包含 Null,则返回 Null。
    varname:任意有效的变量名。如果 varname 参数包含 Null,则返回 Null。

    10. Asc(string)
    返回与字符串的第一个字母对应的 ANSI 字符代码。
    string:参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。

    11. Chr(charcode)
    返回与指定的 ANSI 字符代码相对应的字符。
    charcode:参数是可以标识字符的数字。从 0 到 31 的数字表示标准的不可打印的 ASCII 代码。例如,Chr(10) 返回换行符。

    12. LCase(string), UCase(string)
    返回字符串的小写(大写)形式,所有大写(小写)字母和非字母字符保持不变。
    string:参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null。

    13. Join(list, delimiter)
    返回一个字符串,此字符串由包含在数组中的许多子字符串联接创建。
    list:必选。包含要联接的子字符串一维数组。
    delimiter:可选。在返回字符串中用于分隔子字符串的字符。如果省略,将使用空字符 ("")。 如果 delimiter 是零长度字符串,则在同一列表中列出全部项,没有分界符。

    14. StrComp(string1, string2, compare)
    返回指示字符串比较结果的值。StrComp 函数有以下返回值:-1, 0, 1, Null。
    string1, string2:必选。任意有效的字符串表达式。
    compare:可选。参数值同上。

    15. StrReverse(string)
    返回字符串,此字符串与指定字符串顺序相反。
    string:参数是要进行字符反向的字符串。如果 string 是零长度字符串 (""),则返回零长度字符串。如果 string1 为 Null,则会出现错误。

    二、VBscrīpt其他函数介绍

    1. Option Explicit
    用于 scrīpt 级强制要求显式声明该 scrīpt 中的所有变量。如果使用 Option Explicit,该语句必须出现在 scrīpt 的任何过程之前。使用 Option Explicit 语句时,必须使用 Dim、Private、Public 或 ReDim 语句显式声明所有变量。如果试图使用未经声明的变量名,则会出现错误。

    2. UBound(arrayname, dimension)(LBound(arrayname, dimension))
    返回指定数组维数的最大可用下标。(返回指定数组维的最小可用下标)。
    arrayname:数组变量名,遵循标准变量命名约定。
    dimension:指明要返回哪一维下界的整数。使用 1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,默认值为 1。
    UBound 函数与 LBound 函数一起使用,用于确定数组的大小。使用 LBound 函数可以确定数组某一维的下界。所有维的默认下界均为 0。

    3. IsArray, IsDate, IsEmpty, IsNull, IsNumeric, IsObject
    判断是否数组,日期,Empty,Null,数值或对象。

    4. CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr
    变量类型转换函数,分别转化为Boolean, Byte, Currency, Date, Double, Integer, Long, Single, String类型。

    5. On Error Resume Next
    启动错误处理程序。若不使用 On Error Resume Next 语句,发生的任何运行时错误都将是致命的,即显示错误信息并终止运行。On Error Resume Next 会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用过程(该过程含有 On Error Resume Next 语句)的语句继续运行。这个语句可以不顾运行时错误,继续执行程序,之后您可以在过程内部建立错误处理例程。在调用另一个过程时,On Error Resume Next 语句变为非活动的。所以,如果希望在例程中进行内部错误处理,则应在每一个调用的例程中执行 On Error Resume Next 语句。

    6. Err.{property | method}
    Err.Number为出错的个数。Err.Raise可以在代码中生成运行时的错误。Err.Clear可用于重新设置Err。

    7. RGB(red, green, blue)
    返回代表 RGB 颜色值的整数。
    red:必选。0 到 255 间的整数,代表颜色中的红色成分。
    green:必选。0 到 255 间的整数,代表颜色中的绿色成分。
    blue:必选。0 到 255 间的整数,代表颜色中的蓝色成分。

    8. 函数
    [Public | Private] Function name [(arglist)]
    [statements]
    [name = expression]
    [Exit Function]
    [statements]
    [name = expression]
    End Function

    声明 Function 过程的名称、参数以及构成其主体的代码。

    Public:表示 Function 过程可被所有 scrīpt 中的所有其他过程访问。
    Private:表示 Function 过程只可被声明它的 scrīpt 中的其他过程访问。
    name:Function 的名称,遵循标准的变量命名约定。
    arglis:代表调用时要传递给 Function 过程的参数的变量列表。用逗号隔开多个变量。
    statements:在 Function 过程的主体中执行的任意语句组。
    expression:Function 的返回值。

    9. 过程
    [Public | Private] Sub name [(arglist)]
    [statements]
    [Exit Sub]
    [statements]
    End Sub

    声明 Sub 过程的名称、参数以及构成其主体的代码。

    10. Set ōbjectvar = {objectexpression | Nothing}
    将对象引用赋给变量或属性。
    objectvar:变量或属性的名称,遵循标准变量命名约定。
    objectexpression:由对象名称、另一个已声明为相同对象类型的变量或返回相同对象类型的对象的函数或方法组成的表达式。
    Nothing:停止 objectvar 与任何指定对象的关联。当没有其他变量引用 objectvar 原来所引用的对象时,如将其赋为 Nothing 会释放与该对象所关联的所有系统和内存资源。

    11. Rem comment 或 ' comment
    用于包含程序中的解释性注释。comment 参数是需要包含的注释文本。在 Rem 关键字和 comment 之间应有一个空格。

    12. DateSerial(year, month, day)
    对于指定的年、月、日,返回 Date 子类型的 Variant。

    13. TimeSerial(hour, minute, second)
    返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间。

    14. Date, Time, Now
    系统的日期,时间。

    15. Year, Month, Day, Hour, Minute, Second
    把日期或时间拆分开为年、月、日、小时、分钟、秒。

    16. DateDiff(interval, date1, date2)
    interval:必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。
    date1, date2:必选。日期表达式。用于计算的两个日期。
    interval 参数可以有以下值:
    yyyy 年
    q 季度
    m 月
    y 一年的日数
    d 日
    w 一周的日数
    ww 周
    h 小时
    m 分钟
    s 秒

    17. Rnd(number)
    number 参数可以是任意有效的数值表达式。Rnd 函数返回一个小于 1 但大于或等于 0 的随机数。要产生指定范围的随机整数,请使用以下公式:
    Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。

    18. TypeName(varname)
    返回一个字符串,提供有关变量的 Variant 子类型信息。
    TypeName 函数返回值如下:
    Byte 字节值
    Integer 整型值
    Long 长整型值
    Single 单精度浮点值
    Double 双精度浮点值
    Currency 货币值
    Decimal 十进制值
    Date 日期或时间值
    String 字符串值
    Boolean Boolean 值;True 或 False
    Empty 未初始化
    Null 无有效数据
    <object type> 实际对象类型名
    Object 一般对象
    Unknown 未知对象类型
    Nothing 还未引用对象实例的对象变量
    Error 错误

数据统计

  • 访问量: 17664
  • 日志数: 33
  • 建立时间: 2008-03-07
  • 更新时间: 2008-09-22

RSS订阅

Open Toolbar