VB中strconv 的作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中strconv 的作用相关的知识,希望对你有一定的参考价值。

请高手跟我讲解一下 VB中strconv 的作用举个例子,谢了

返回按指定类型转换的 Variant (String)。
语法
StrConv(string, conversion, LCID)
StrConv 函数的语法有下面的命名参数:
部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)
设置值
conversion 参数的设置值为:
常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。
*应用到远东国别。**仅应用到日本。
注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。
下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。
说明
在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。

常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
s = StrConv("AbCdef", 1) 's = "ABCDEF"
vbLowerCase 2 将字符串文字转成小写。
s = StrConv("AbCdef", 2) 's = "abcdef"
vbProperCase 3 将字符串中每个字的开头字母转成大写。
s = StrConv("ni hao", 3) 's = "Ni Hao"
每个字的开头 = 前面有空格,与是不是单词无关
s = StrConv("nihao", 3) 's = "Nihao"
vbWide* 4* 将字符串中单字节字符转成双字节字符。
s = StrConv("Ab123你好", 4) 's = "Ab123你好"
(瘦子变胖子,对中文无效)
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
s = StrConv("Ab123你好", 8) 's = "Ab123你好"
(胖子变减肥,对中文无效)
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
小鬼子用的
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
小鬼子用的
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
对概念不太明白,暂时这样理解:
Unicode = 在内存里的表现方式(2进制?
而系统的缺省码页 = 我们所看到的
s = StrConv("你好", 64) 's = "`OY"
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。
应用案例:处理二进制数组与字符串比较时用
s = StrConv("`OY", 128) 's = "你好"
对于 64、128 的理解不一定正确,但在处理程序间的数据交换时是很有用的,比如用 open 语句打开文本文件。说的比较笼统,只有在接触后才容易体会。
备注:“*”应用到远东国别,“**”仅应用到日本。
注意:
这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。
其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。
当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。
下面是一些一般情况下的有效分界符:
Null (Chr$(0))
水平制表符 (Chr$(9))
换行 (Chr$(10))
垂直制表符 (Chr$(11))
换页 (Chr$(12))
回车 (Chr$(13))
空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。
说明:
在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。
StrConv 函数示例:
本示例使用 StrConv 函数来将 Unicode 字符串转换成 ANSI 字符串。
Dim i As Long
Dim x() As Byte
x = StrConv("ABCDEFG", vbFromUnicode) ' 转换字符串。
For i = 0 To UBound(x)
Debug.Print x(i)
Next
参考技术A StrConv
  StrConv 函数
  --------------------------------------------------------------------------------
  返回按指定类型转换的 Variant (String)。
  语法
  StrConv(string, conversion, LCID)
  StrConv 函数的语法有下面的命名参数:
  部分 说明
  string 必要参数。要转换的字符串表达式。
  conversion 必要参数。Integer。其值的和决定转换的类型。
  LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)
  设置值
  conversion 参数的设置值为:
  常数 值 说明
  vbUpperCase 1 将字符串文字转成大写。
  vbLowerCase 2 将字符串文字转成小写。
  vbProperCase 3 将字符串中每个字的开头字母转成大写。
  vbWide* 4* 将字符串中单字节字符转成双字节字符。
  vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
  vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
  vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
  vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
  vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。
  *应用到远东国别。
  **仅应用到日本。
  注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。
  下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。
  说明
  在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。
  StrConv 函数示例
  本示例使用StrConv 函数来将Unicode 字符串转换成 ANSI 字符串。
  Dim i As Long
  Dim x() As Byte
  x = StrConv("ABCDEFG", vbFromUnicode) ' 转换字符串。
  For i = 0 To UBound(x)
  Debug.Print x(i)
  Next
  --------------------------------------------------------------------------------
  相关基础知识:
  命名参数
  一参数,在对象库中预先定义了其名称。对每个参数,不必拘泥于语法所规定的特定顺序来提供值,而是只需按任何顺序用命名参数分配值。例如,假设一方法接受了三个参数:
  DoSomeThing namedarg1, namedarg2, namedarg3
  在对命名参数赋值时,可使用以下语句:
  DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20
  注意,命名的参数不必按语法中安排的正规顺序出现。
  字符串表达式
  任何其值为一连串字符的表达式。字符串表达式的元素可包含返回字符串的函数、字符串文字、字符串常数、字符串变量、字符串 Variant 或返回字符串 Variant (VarType 8) 的函数。
  Integer 数据类型
  一种数据类型,将整型变量作为 2 字节整数存储起来,范围是 -32,768 到 32,767 之间的数字。Integer 数据类型也可表示列举值。在 Visual Basic 可用百分比符号 (%) 的类型声明字符来表示一个 Integer。
  参数
  传递给一个过程的常数、变量或表达式。
  Unicode
  国际标准化组织 (ISO) 字符标准。Unicode 使用 16 位 (2 字节) 编码方案,允许 65,536 个不同的字符空间。Unicode 包含标点符号、数学符号、修饰符号等的表示。
  常数
  执行程序时保持常数值的命名项目。常数可以是字符串、数值、另一常数、任何( 除乘幂与 Is 之外的) 算术运算符或逻辑运算符的组合。每个主应用程序皆可定义自己的一组常数。用户也可以 Const 语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。
  区域
  关于国家/地区及其语言的信息集合。代码区域设置会影响关键字等术语的语言,也会定义区域专用设置,像小数点、日期格式、字符排序顺序等。
  系统的区域设置会影响到判别区域的功能,例如,在显示数字或将字符串转换成日期时,可使用操作系统“控制面板”的实用程序来设置系统所在区域。
  虽然代码区域和系统区域通常设置为相同的设置值,但在一些情况仍有不同之处。例如,在标准版 Visual Basic 和专业版 Visual Basic 中,并没有把代码从 English-U.S. 翻译过来。可以把系统区域设置成用户的语言和国家/地区,但总是将代码区域设置成 English-U.S.,而且不能改变。在这种情况下,将使用 English-U.S. 分隔符、格式占位符和排序次序。
  运行时错误
  在代码正在运行的时发生的错误。当一语句要进行非法操作时就会发生运行时错误。
  Null
  一个值,指示变量不含有效数据。 Null 是将 Null 显式赋值给一变量的结果,或者是包含 Null 的表达式之间的任何运算。
  DBCS
  使用 1 或 2 字节来表示一字符的字符集,超过个 256 字符也可表示。

go语言中 strconv.ParseInt 第三个参数的作用

官方解释

相信很多小伙伴 看到官方解释 还是懵的一批

小道解释

在网上很多帖子说 第三个参数 是指定返回值类型的,看到这种帖子,我只想说你在放屁,函数都看不懂,回炉重造吧!!!

针对函数 返回值 问题,官方文档已经写得很清楚了,就是 多返回值(int64,error)

那么,第三个参数有何用?

其实,他是起到 string 转 int 时的一个限制作用,如果超过了第三个参数 bitSize 的限制,那么就会将报错信息输出到 error 中

案例展示

我们分别将 “127” 和 “128” 转换成 int类型

package main

import (
	"fmt"
	"strconv"
)

func main() {
	str1 := "127"
	n, err := strconv.ParseInt(str1, 10, 8) //这里的 8 指的是 转换结果最大值不超过 int8 即 127
	if err != nil {
		fmt.Printf("err is %v\\n", err)
	}
	fmt.Printf("类型: %T ,值: %d", n, n)
}

 

package main

import (
	"fmt"
	"strconv"
)

func main() {
	str1 := "128"
	n, err := strconv.ParseInt(str1, 10, 8) //这里的 8 指的是 转换结果最大值不超过 int8 即 127
	if err != nil {
		fmt.Printf("err is %v\\n", err)
	}
	fmt.Printf("类型: %T ,值: %d", n, n)
}

 

 从以上结果中我们可以很明显的看到,第三个参数确实是起限制作用的,如果待转换值超出了我们设置的限制,就会将报错信息存于err中

以上是关于VB中strconv 的作用的主要内容,如果未能解决你的问题,请参考以下文章

VB中StrConv(Text1.Text, vbFromUnicode)是啥意思啊?请高手指点,谢谢!

go语言中 strconv.ParseInt 第三个参数的作用

16strconv

Go语言标准库之strconv

go语言标准库之strconv

Go语言标准库之strconv