怎样用vb函数chr返回大于128的字符

怎样用vb函数chr返回大于128的字符,第1张

这要了解字符的ASCII码。A的ASCII码为65,B的ASCII码为66…

1的ASCII码为49,2的ASCII码为50…

函数chr()的作用是返回其参数所表示的字符,参数是这个字符的ASCII码。

print chr(48+i)是打印ASCII码为(48+i)所表示的字符,而Print i是打印i的值,当然不一样了。

为了加深理解,你可以运行一下下面的程序看看d出的TXT文本:

Private Sub Form_Load()

Open "c:\ASCII码与字符txt" For Output As #1

Print #1, "ASCII码", "字符"

For i = 33 To 126

Print #1, i,

Print #1, Chr(i)

Next i

Close #1

Shell "notepadexe c:\ASCII码与字符txt", 1

Kill "c:\ASCII码与字符txt"

End Sub

解决方法如下:

如果还想从 SystemString 类中找到方法进行字符串和字节数组之间的转换,恐怕会失望了。为了进行这样的转换,不得不借助另一个类:SystemTextEncoding。该类提供了 bye[] GetBytes(string) 方法将字符串转换成字节数组,还提供了 string GetString(byte[]) 方法将字节数组转换成字符串。

  SystemTextEncoding 类似乎没有可用的构造函数,但可以找到几个默认的 Encoding,即 EncodingDefault(获取系统的当前 ANSI 代码页的编码)、EncodingASCII(获取 7 位 ASCII 字符集的编码)、EncodingUnicode(获取采用 Little-Endian 字节顺序的 Unicode 格式的编码)、EncodingUTF7(获取 UTF-7 格式的编码)、EncodingUTF8(获取 UTF-8 格式的编码) 等。这里主要说说 EncodingDefault 和 EncodingUnicode 用于转换的区别。

  在字符串转换到字节数组的过程中,EncodingDefault 会将每个单字节字符,如半角英文,转换成 1 个字节,而把每个双字节字符,如汉字,转换成 2 个字节。而 EncodingUnicode 则会将它们都转换成两个字节。可以通过下列简单的了解一下转换的方法,以及使用 EncodingDefault 和 EncodeingUnicode 的区别:

private void TestStringBytes() {

string s = "C#语言";

byte[] b1 = SystemTextEncodingDefaultGetBytes(s);

byte[] b2 = SystemTextEncodingUnicodeGetBytes(s);

string t1 = "", t2 = "";

foreach (byte b in b1) {

t1 += bToString("") + " ";

}

foreach (byte b in b2) {

t2 += bToString("") + " ";

}

thistextBox1Text = "";

thistextBox1AppendText("b1Length = " + b1Length + "\n");

thistextBox1AppendText(t1 + "\n");

thistextBox1AppendText("b2Length = " + b2Length + "\n");

thistextBox1AppendText(t2 + "\n");

}

VBA提供了15种标准数据类型,具体见下表:

数据类型的转换

1 各种进制转换函数

VB中涉及到的数据进制之间的转换函数主要有如下几个:

Hex 函数: 返回代表十六进制数值的 String;

Oct 函数: 返回代表一数值的八进制值的Variant (String);

Cint函数: 强制将一个表达式转换成-32,768 至 32,767的整型;

CLng函数: 强制将一个表达式转换成-2,147,483,648 至 2,147,483,647的长整型;

Cdec函数: 强制将一个表达式转换成Decimal 数据类型;

CDbl函数: 强制将一个表达式转换成Double 数据类型;

例子:

(1) A=hex(5) 返回5;

(2) B=hex(10) 返回A

(3) C=hex(23) 返回17

(4) D=oct(5) 返回5

(5) E=oct(10) 返回12

(6) F=oct(23) 返回27

(7) G=Cint(&H17) 返回23

(8) H=Cint(&O12) 返回10

值得一提的是Hex函数和Oct函数返回的都是字符串,如果是想将十六进制或是八进制的字符串变量转换成十进制,可以按如下方法进行:

C=”17” 17为十六进制数值的String

C=”&H” & C

Ic=Cint(C) 返回23

2 字符串和数字转换函数

Str()和Val()用于字符串和数字的相互转换;

Chr()和Asc()用于字符串和AscII码的相互转换;

Chrw()和Ascw()用于Unicode码和中文的相互转换;

Format()函数用途十分广泛的一个函数,功能十分强大

例子:

(1) MyString = Str(-45965) ' 返回 "-45965"。

MyString = Str(459001) ' 返回 " 459001"。

(2) MyValue = Val(" 2 45 7") ' 返回 2457。

MyValue = Val("24 and 57") ' 返回 24。

(3) MyChar = Chr(97) ' 返回 a。

MyChar = Chr(37) ' 返回 %。

(4) MyNumber = Asc("Apple") ' 返回 65。

MyNumber = Asc("a") ' 返回 97。

Chr 函数:返回与指定的 ANSI 字符代码相对应的字符。

Chr(charcode):charcode 参数是可以标识字符的数字。

说明:从 0 到 31 的数字表示标准的不可打印的 ASCII 代码。例如,Chr(10)

返回换行符。

注意 ChrB 函数与包含在字符串中的字节数据一起使用。ChrB 不是返回一个或两个字节的字符,而总是返回单个字节的字符。ChrW 是为使用 Unicode 字符的 32 位平台提供的。它的参数是一个 Unicode (宽字符)的字符代码,因此可以避免将

ANSI 转化为 Unicode 字符。

扩展资料

 第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;

第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。  

——chr函数

ACCESS中好像不支持chrw(),但,chr()及asc()函数可以达到你的要求。

比如,asc("指") 返回 -10568;

而,chr(-10568) 返回 "指"。

你可以在“立即窗口”内输入: asc("指") 回车后就会出现相应的数值,进行查看。你想看什么字就这么查看,包括软键盘上的稀奇古怪的字,都有相应的代码可以查看。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12182072.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存