VB中几个问题

2024-05-18 01:22

1. VB中几个问题

除数为0的错误是11啊,这些错误号都是编译器定义好的,可以根据错误号Err.Number 来大概的判断程序出现错误的原因。
  
1、err.Number:返回或设置表示错误的数值。Number 是 Err 对象的缺省属性。可读/可写。
  
 说明
  
 从对象返回用户自定义的错误时,把被选作错误代码的数与 vbObjectError 常数相加,并由此设置 Err.Number。例如,用下列代码返回作为错误代码的数字 1051:
  
 Err.Raise Number := vbObjectError + 1051, Source:= SomeClass
  
 Err 对象
  
 含有关于运行时错误的信息。
  
 说明
  Err 对象的属性由错误的生成者来设置,这个生成者或者是 Visual Basic,或者是对象,或者是程序设计员。
  
 Err 对象的缺省属性是 Number。因为该缺省属性可以用对象名称 Err 表示,所以不必修改以前用 Err 函数或 Err 语句书写的代码。
  
 当运行时错误发生时,Err 对象的属性被填入明确识别错误的信息以及处理这个错误所使用的信息。为了在代码中生成运行时错误,请用 Raise 方法。
  
 在任意形式的 Resume 或 On Error 语句之后以及在错误处理子程序内的 Exit Sub、Exit Function、或 Exit Property 语句之后,将 Err 对象的属性重新设置为零或长度为零的字符串 ("")。可使用 Clear 方法重新明确设置 Err 。
  
 为了对系统错误和类模块生成运行时错误,要使用 Raise 方法而不使用 Error 语句。在其它代码中是否使用 Raise 方法,这要看想要返回的信息量有多大。
  
 Err 对象是具有全局范围的固有对象。在代码中没有必要建立这些对象的实例。
  
 2、ChDrive 语句 改变当前的驱动器。
  语法
  ChDrive drive
  必要的 drive 参数是一个字符串表达式,它指定一个存在的驱动器。如果使用零长度的字符串 (""),则当前的驱动器将不会改变。如果 drive 参数中有多个字符,则 ChDrive 只会使用首字母。
  
 chdrive是改变缺省驱动器而不是drive1的驱动器,它与drivelistbox控件无关,比如,你ChDrive "D"
  就将D盘作为你的缺省驱动器,下次你再运行程序drivelistbox控件默认(就是你最先看到的)的是D盘。这样说你懂不?

VB中几个问题

2. vb的问题

int函数是取整的
因此表达式的值是:32+23=55

3. vb的问题,

1)
x=int(rnd*991)+10

2)
x=int(rnd*90)+10

vb的问题,

4. vb的问题

先看按钮1 事件:  数组a()被赋值 a(0)=1 a(1)=2,a(2)=3,a(3)=4,a(4)=5
下面 开始运行以数组a()为参数的proc()程序:注意 一开始声明了一个 I 变量,前面加了STATIC,因为是在函数体内声明这个静态变量,所以这个I 为静态局部变量,静态局部变量有下面一些特征:
(1)静态局部变量在函数内定义,但不像自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋值。数值型变量自动赋初值0,字符型变量赋空字符
 
 简单来说 I 的值会一直存在于函数PROC 中 会随着程序的进行它的值会发生变化,而且这个值有遗传性,不会随着程序的结束而被重新清牌
 
很明显 你程序中 static i as integer 定义了一个静态局部变量I 因为没有显式初始化,所以初始值为0
               接下来do
                             x(i)=x(i)+x(i+1)
                            i=i+1
                        loop  while i<2
这里 先做了一遍 x(0)=x(0)+x(1)             x(0)被赋值为3
        然后i+1=1      <2 所以又做了一遍循环    x(1)=x(1)+x(2)   x(1)=5
        这时候i=2  不做循环了   即第一个PROC(A)的结果为 3 5 3 4 5 
                   注意:静态局部变量I的值为 2 并将一直存在
         接下来 第二个proc(a)    还是DO LOOP 程序   程序先做一遍 DO  因为I =2 所以
                             X(2)=X(2)+x(3)   X(2)=7 
                 i=i+1    I 为 3
proc(a)结束
所以整个数组 现在的情况为  a(0)=3 a(1)=5,a(2)=7,a(3)=4, a(4)=5 自此  程序结束。
综上所述  这个程序就是  STATIC  跟  DO    LOOP   的知识点  掌握了就可以了
当然你可以再添加一个PROC(A)  会发现结果为 3 5 7 9 5

5. 关于vb的一个小问题

为进行信息交换,各汉字使用地区都制订了一系列汉字字符集标准。  
  ① GB2313字符集,收入汉字6763个,符号715个,总计7478个字符,这是大陆普遍使用的简体字符集。楷体-GB2313、仿宋-GB2313、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。市面上绝大多数所谓的繁体字体,其实采用的是GB-2313字符集简体字的编码,用字体显示为繁体字,而不是直接用GBK字符集中繁体字的编码,错误百出。 

  ② BIG-5字符集,收入13060个繁体汉字,808个符号,总计13868个字符,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。 

  ③ GBK字符集,又称大字符集(GB=GuóBiāo国标,K=扩展),包含以上两种字符集汉字,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A) 中的汉字52个。Windows 95\98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟�6�9龑昳堃慜靕臹等GBK简繁体汉字。 

  BIG-5 (繁体中文)与GB-2313 (简体中文),编码不相兼容,字符在不同的操作系统中便产生乱码。文本文字的简体与繁体(文字及编码)之间的转换,可用BabelPad、TextPro或Convertz之类的转码软件来解决。若是程序,Windows XP操作系统,可用Microsoft AppLocale Utility 1.0解决;Windows 2000的操作系统,大概只有用:中文之星、四通利方、南极星、金山快译之类的转码软件方能解决了。 

  ④ GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,共计27533个汉字。宋体-18030、方正楷体(FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华康标准宋体(DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New Gulim,以及微软Windows Vista操作系统提供的宋黑楷仿宋等字体亦支持这个字符集的显示。Windows 98支持这个字符集,以下的字符集则不支持。手写输入法逍遥笔4.0版支持GB18030字符集及方正超大字符集汉字的录入。 

  ⑤ 方正超大字符集,包含GB18030字符集、CJK Ext-B中的36862个汉字,共计64395个汉字。宋体-方正超大字符集支持这个字符集的显示。Microsoft Office XP或2003简体中文版就自带有这个字体。Windows 2000的操作系统需安装超大字符集支持包“Surrogate更新”。 

  ⑥ ISO/IEC 10646 / Unicode字符集,这是全球可以共享的编码字符集,两者相互兼融,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字20902个,CJK Ext-A 6582个,Ext-B 42711个,共计70195个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(细明体)能显示全部Ext-B汉字。至今尚无单独一款字体能够显示全部70195个汉字,但可用海峰五笔、新概念五笔、仓颉输入法世纪版、新版的微软新注音、仓颉输入法 6.0 版(单码功能)等输入法录入。Ext-C还有2万多个汉字。详情请参阅香港中文大学网站、马来西亚仓颉之友网站、福建陈清钰个人网站。 

  ⑦ 汉字构形数据库2.3版,内含楷书字形60082个、小篆11100个、楚系简帛文字2627个、金文3459个、甲骨文177个、异体字12768组。可以安装该程序,亦可以解压后使用其中的字体文件,对于整理某些古代文献十分有用。  

  如果超出了输入法所支持的字符集,就不能录入计算机。如果没有相应字体的支持,则显示为黑框、方框或空白。如果操作系统或应用软件不支持该字符集,则显示为问号(一个或两个)。在网页上亦存在同样的情况。  

  关于Unicode 

  由于各国国家标准字集所收的汉字字数、常用字的差异,虽然象中国两岸GB/BIG5字集常用字基本类似,转换后阅读并不成问题,但是这种编码转换的混乱关系,对文字交流始终是一种障碍。因此相关国家的标准化组织和文字工作者经过共同努力,终于在93年完成了包含中日韩(CJK)汉字的Unicode 汉字标准ISO 10646.1。 Unicode是完全双字节表示的多国文字编码体系,编码空间0x0000-0xFFFF。 ISO 10646.1汉字标准使用编码0x4E00-9FA5,共包含20902个汉字。其中: 大陆(S)提出的汉字17124个,台湾(T)提出的汉字17258个; S与T的并集,即中国(C)提出的汉字为20158个。 日本(J)提出的汉字为12157个,中国未提出的690个(Ja); 韩国(K)提出的汉字为7477个,其中中国未提出的90个(Ka); Ja与Ka并集共744字。 支持Unicode编码的相关电脑系统软件,如Unix, Win95已有推出,但是由于Unicode的ASCII码是用双字节编码(即一般电脑系统中的单字节ASCII码前加 0x00),同时其汉字编码与各国的现有编码也不兼容,造成现有的软件和数据不能直接使用,所以目前完全使用Unicode软件系统的用户并不多,大多数只将它此作为一个国际语言编码标准来使用

关于vb的一个小问题

6. vb 的小问题

为进行信息交换,各汉字使用地区都制订了一系列汉字字符集标准。  
  ① GB2313字符集,收入汉字6763个,符号715个,总计7478个字符,这是大陆普遍使用的简体字符集。楷体-GB2313、仿宋-GB2313、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。市面上绝大多数所谓的繁体字体,其实采用的是GB-2313字符集简体字的编码,用字体显示为繁体字,而不是直接用GBK字符集中繁体字的编码,错误百出。 

  ② BIG-5字符集,收入13060个繁体汉字,808个符号,总计13868个字符,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。 

  ③ GBK字符集,又称大字符集(GB=GuóBiāo国标,K=扩展),包含以上两种字符集汉字,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A) 中的汉字52个。Windows 95\98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟??龑昳堃慜靕臹等GBK简繁体汉字。 

  BIG-5 (繁体中文)与GB-2313 (简体中文),编码不相兼容,字符在不同的操作系统中便产生乱码。文本文字的简体与繁体(文字及编码)之间的转换,可用BabelPad、TextPro或Convertz之类的转码软件来解决。若是程序,Windows XP操作系统,可用Microsoft AppLocale Utility 1.0解决;Windows 2000的操作系统,大概只有用:中文之星、四通利方、南极星、金山快译之类的转码软件方能解决了。 

  ④ GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,共计27533个汉字。宋体-18030、方正楷体(FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华康标准宋体(DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New Gulim,以及微软Windows Vista操作系统提供的宋黑楷仿宋等字体亦支持这个字符集的显示。Windows 98支持这个字符集,以下的字符集则不支持。手写输入法逍遥笔4.0版支持GB18030字符集及方正超大字符集汉字的录入。 

  ⑤ 方正超大字符集,包含GB18030字符集、CJK Ext-B中的36862个汉字,共计64395个汉字。宋体-方正超大字符集支持这个字符集的显示。Microsoft Office XP或2003简体中文版就自带有这个字体。Windows 2000的操作系统需安装超大字符集支持包“Surrogate更新”。 

  ⑥ ISO/IEC 10646 / Unicode字符集,这是全球可以共享的编码字符集,两者相互兼融,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字20902个,CJK Ext-A 6582个,Ext-B 42711个,共计70195个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(细明体)能显示全部Ext-B汉字。至今尚无单独一款字体能够显示全部70195个汉字,但可用海峰五笔、新概念五笔、仓颉输入法世纪版、新版的微软新注音、仓颉输入法 6.0 版(单码功能)等输入法录入。Ext-C还有2万多个汉字。详情请参阅香港中文大学网站、马来西亚仓颉之友网站、福建陈清钰个人网站。 

  ⑦ 汉字构形数据库2.3版,内含楷书字形60082个、小篆11100个、楚系简帛文字2627个、金文3459个、甲骨文177个、异体字12768组。可以安装该程序,亦可以解压后使用其中的字体文件,对于整理某些古代文献十分有用。  

  如果超出了输入法所支持的字符集,就不能录入计算机。如果没有相应字体的支持,则显示为黑框、方框或空白。如果操作系统或应用软件不支持该字符集,则显示为问号(一个或两个)。在网页上亦存在同样的情况。

7. 关于vb的问题

Str()的作用是将数字型变量或常量改变成字符型变量或常量,举例如下:
    对于常量:str(35)=" 35 ",str(-5.5)="-5.5 ",以此类推。(注意字符串" 35"的前面有一个空格。
    对于变量:则把变量的值变成字符串,如:假定A =287,则str(A)=" 287 ",以此类推。(注意前面也有空格)

    对于你说的str(ABC),因为ABC不是数字,所以vb系统就把它当成变量ABC,就去调ABC的值,因从未对ABC赋值,系统默认为0,所以就把那个0转化成字符串了,?Str(ABC) 就打印出字符串" 0"(前面有一个空格)。
综上所述 Str(88.8)=" 88.8" 注意 88.8前面有个空格

关于vb的问题

8. 关于vb的小问题

setmynum是一个变量。val表示把括号后面的数转化为10进制的数值形式
&H是16进制数字的开头。写在" "里面表示加上&H这两个字符窜。如加号后面的数值=5的话,setmynum就等于val(&H5)这个意思
+号后面的mid(sur,11+4*1,4)是取值的函数,sur表示从sur这个变量里面取值,中间的表示从第几项开值取值,(从第一项开始数,第一个数为第1项,不是从0开始数)最后面的4为取几个数,上面如果sur=12345678901234567890的话,而且i 等于1的话setmynum就等于取第15个数开始的后4个数字。就是5678,最后前面加上引号里的字符,完整的就是,setmynum=val(&H5678)最后结果为 setmynum=22136.因为16进制的&H5678转化为10进制的val就是22136