Chr函数详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
************************** Chr() ************************************************************
Chr("32") SPACE Chr("33") ! Chr("34") " Chr("35") # Chr("36") $ Chr("37") %
Chr("37") % Chr("38") & Chr("39") ’ Chr("40") ( Chr("41") ) Chr("42") *
Chr("42") * Chr("43") + Chr("44") , Chr("45") - Chr("46") . Chr("47") /
Chr("47") / Chr("48") 0 Chr("49") 1 Chr("50") 2 Chr("51") 3 Chr("52") 4
Chr("52") 4 Chr("53") 5 Chr("54") 6 Chr("55") 7 Chr("56") 8 Chr("57") 9
Chr("57") 9 Chr("58") : Chr("59") ; Chr("60") < Chr("61") = Chr("62") >
Chr("62") > Chr("63") ? Chr("64") @ Chr("65") A Chr("66") B Chr("67") C
Chr("67") C Chr("68") D Chr("69") E Chr("70") F Chr("71") G Chr("72") H
Chr("72") H Chr("73") I Chr("74") J Chr("75") K Chr("76") L Chr("77") M
Chr("77") M Chr("78") N Chr("79") O Chr("80") P Chr("81") Q Chr("82") R
Chr("82") R Chr("83") S Chr("84") T Chr("85") U Chr("86") V Chr("87") W
Chr("87") W Chr("88") X Chr("89") Y Chr("90") Z Chr("91") [ Chr("92") \
Chr("92") \ Chr("93") ] Chr("94") ^ Chr("95") _ Chr("96") ` Chr("97") a
Chr("97") a Chr("98") b Chr("99") c Chr("100") d Chr("101") e Chr("102") f
Chr("102") f Chr("103") g Chr("104") h Chr("105") i Chr("106") j Chr("107") k
Chr("107") k Chr("108") l Chr("109") m Chr("110") n Chr("111") o Chr("112") p
Chr("112") p Chr("113") q Chr("114") r Chr("115") s Chr("116") t Chr("117") u
Chr("117") u Chr("118") v Chr("119") w Chr("120") x Chr("121") y Chr("122") z
Chr("122") z Chr("123") { Chr("124") | Chr("125") } Chr("126") ~ Chr("127")
Chr("127") Chr("128") ? Chr("129") Chr("130") Chr("131") Chr("132")
************************** Chr() ************************************************************
Chr("0") 为0的字符
Chr("1")
Chr("2")
Chr("3")
Chr("4")
Chr("5")
Chr("6")
Chr("7") 响铃
Chr("8") 回格
Chr("9") tab(水平制表符)
Chr("10") 换行
Chr("11") tab(垂直制表符)
Chr("12") 换页
Chr("13") 回车 chr(13)&chr(10) 回车和换行的组合
Chr("14")
Chr("15")
Chr("16")
Chr("17")
Chr("18")
Chr("19")
Chr("20")
Chr("21")
Chr("22")
Chr
("23")
Chr("24")
Chr("25")
Chr("26") 结束 End
Chr("27") 脱离 Pause break
Chr("28")
Chr("29")
Chr("30")
Chr("31")
Chr("32") 空格 SPACE
Chr("33") !
Chr("34") "
Chr("35") #
Chr("36") $
Chr("37") %
Chr("38") &
Chr("39") ’
Chr("40") (
Chr("41") )
Chr("42") *
Chr("43") +
Chr("44") ,
Chr("45") -
Chr("46") .
Chr("47") /
Chr("48") 0
Chr("49") 1
Chr("50") 2
Chr("51") 3
Chr("52") 4
Chr("53") 5
Chr("54") 6
Chr("55") 7
Chr("56") 8
Chr("57") 9
Chr("58") :
Chr("59") ;
Chr("60") <
Chr("61") =
Chr("62") >
Chr("63") ?
Chr("64") @
Chr("65") A
Chr("66") B
Chr("67") C
Chr("68") D
Chr("69") E
Chr("70") F
Chr("71") G
Chr("72") H
Chr("73") I
Chr("74") J
Chr("75") K
Chr("76") L
Chr("77") M
Chr("78") N
Chr("79") O
Chr("80") P
Chr("81") Q
Chr("82") R
Chr("83") S
Chr("84") T
Chr("85") U
Chr("86") V
Chr("87") W
Chr("88") X
Chr("89") Y
Chr("90") Z
Chr("91") [
Chr("92") \
Chr("92") \
Chr("93") ]
Chr("94") ^
Chr("95") _
Chr("96") `
Chr("97") a
Chr("98") b
Chr("99") c
Chr("100") d
Chr("101") e
Chr("102") f
Chr("103") g
Chr("104") h
Chr("105") i
Chr("106") j
Chr("107") k
Chr("108") l
Chr("109") m
Chr("110") n
Chr("111") o
Chr("112") p
Chr("113") q
Chr("114") r
Chr("115") s
Chr("116") t
Chr("117") u
Chr("118") v
Chr("119") w
Chr("120") x
Chr("121") y
Chr("122") z
Chr("123") {
Chr("124") |
Chr("125") }
Chr("126") ~
Chr("127")
Chr("128")
Chr("129")
Chr("130")
Chr("131")
Chr("132")
************************************************************
升序 / AscB / AscW 和 Chr / ChrB / ChrW 之间的信息: 函数差异
概要
for years,BASIC programmers have been using Asc and Chr functions to access and manipulate ASCII character set。 with of in mainstream operating systems and applications Unicode acceptance advent,has developed for improved versions of Asc and Chr functions need。 若要 to meet this demand,Microsoft Visual Basic (4.0 and higher) for Windows includes AscB / ChrB and AscW / ChrW functions。
更多信息
Unicode 是一种标准,旨在替换编码数字窗体中的字符的 ANSI 标准。 因为标准 ANSI 只使用一个字节来表示每个字符,它被限制为最多 256 个不同的字符。 虽然这是英语说话访问群体的需要满足,它就会降短当被认为在世界各地的软件市场时。 与 Unicode 标准,每个字符由两个字节表示,以便整个 Unicode 字符集包括 65,536 个可能的位置
。
Microsoft Windows NT,Microsoft Windows 2000,and Microsoft OLE 2.0 entirely are Unicode based,and Visual Basic (4.0 and higher) represents internally in Unicode format all strings。 AscW and ChrW functions allow access to full range of Unicode characters。 这些函数在原始 Asc 和 Chr 函数相同的方式工作在于它们支持参数从 0 到 65,535 而不是只是从 0 到 255 之间。 许多 Visual Basic 对象 (如在调试窗口和标签和文本框框) 返回一个"?"时这些对象并不知道如何显示一个 Unicode 字符。
由于所有字符串现在在内部都表示 Unicode 格式,它不使用能表示字符串中的二进制数据一样简单。 若要给一个字符串数据使用 Chr 函数不会导致之前与相同的行为。 例如:
stringvar = Chr(65)
一个双字节长的字符串,其中字节 1 的值为 65 和字节 2 中的结果有一个值为 0 (这是字母"A"的 Unicode 表示形式)。 一定要记住将从 ANSI 转换为 Unicode 不总是需要那样在这种情况下只需添加一个第二个字节值为零。 例如,ANSI 字符代码区域 130-159 中的大多数有完全不同的 Unicode 值。 请尝试执行一个 Debug.Print AscW(Chr(130)) 并显示您 8218 的值。
当前,Microsoft Windows 要求有点 endian 处理器,这意味着多个字节的实体中第一个字节是最不重要,和重要性增加连续的以字节为单位)。 这说明了为什么 Unicode 字符"A"表示在内部为以下:
当前,Microsoft Windows 要求有点 endian 处理器,这意味着多个字节的实体中第一个字节是最不重要,和重要性增加连续的以字节为单位)。 这说明了为什么 Unicode 字符"A"表示在内部为以下:
-------------------
| 65 | 0 |
-------------------
byte 0 byte 1
AscB 和 ChrB 函数可用于复制用途由升序和 Chr 函数,完成,因为这些函数允许单个字节数量的操作。 如果您想连续具有 65、 66、,67 和 68 的二进制值是 4 个字节的字符串然后使用 Chr 函数将不起作用。 必须改为使用 ChrB 函数。 例如:
stringvar = ChrB(65) & ChrB(66) & ChrB(67) & ChrB(68)
或者,可以使用功能创建新的字节数据类型的数组和操作这样,您的二进制数据。
下面列出的是对这些函数,以进一步清楚地表达此信息的一些简单的使用的结果的说明。
print Asc(Chr(255))-->"255"
没有新此处,在于 Chr 函数将返回一个 Unicode 字符占用一个字节的 ANSI 字符的而不是两个字节。
print Asc(ChrB(255))--> 5-Invalid procedure call。
这种用法返回一个错误,因为 Asc 函数总是要求至少有两个字节的参数并且 ChrB 函数只返回一个字节。
打印 Asc(Chr(256))--> 5-无效的过程调用。
虽然 Chr 函数返回一个双字节 Unicode 字符,但仍只计数字介于 0 和 255 之间为它的参数 (请注
意在 DBCS 启用系统上, 升序 / Chr 处理两个字节的 DBCS 字符,转换它们与 Unicode)。 使用 ChrW 函数允许访问到完整的 65,536 个 Unicode 字符位置。
print AscW(ChrW(256))-->"256"
这是此部分中第一个语句的新版本。 ChrW 函数接受从 0 到 65,536 一个值并返回该字符 (在 32 位系统)。 AscW 函数将解释这两个字节的字符作为 Unicode 字符并返回该字符的正确的 Unicode 值。
print Asc(ChrW(256))-->"65"
打印 Asc(ChrW(5000))-->"63"
事情此处 ChrW 函数被正在评估第一次。 ChrW(256) 是字符"A",并因此该函数可以减少到 Asc("A"),为"A"Unicode (和 ANSI) 号是 65。 因为 Visual Basic 不知道如何显示由它只显示的 Chr(5000) 字符一个"吗?",和按预期方式,Unicode 和 ANSI 值"吗?"是 63。
打印 AscB(Chr(65))-->"65"
print AscB(ChrW(256))-->"0"
打印 AscB(ChrW(257))-->"1"
打印 AscB(ChrW(555))-->"43"
打印 AscB(ChrW(65535))-->"255"
所有这些返回值可以得到解释通过了解每个字符的方式在内部表示 (请参见上面的 Little-Endian 引用) 和 AscB 函数查找只在它接收的字符的第一个字节这一事实。 直观地其外观类似于下图:
-------------------
Chr(65) | 65 | 0 |
-------------------
Chr(256) | 0 | 1 |
-------------------
Chr(257) | 1 | 1 |
-------------------
Chr(555) | 43 | 1 |
-------------------
Chr(65535)| 255 | 255 |
-------------------
byte 0 byte 1
AscB 函数仅返回的任何字符的第一个字节是。
打印 ChrB(65)-->""
Visual Basic prints for this call to ChrB function nothing because ChrB function is only returning one-byte string。 do not constitute valid Unicode character (or of characters series) because this like one byte strings mean nothing to Visual Basic。
打印 ChrB(65) 和 ChrB(0)"A"-->
在这种情况下,我们将两个单字节字符串连接成一个两个字节的字符串。 因为生成的位模式是与 Unicode"A"的位模式相同,这就是 Visual Basic 打印的内容。