0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样在VB6中编程

454398 来源:网络整理 作者:网络整理 2019-12-12 17:08 次阅读

步骤1:字符串

怎样在VB6中编程

VB处理字符串的方式有时会令人困惑。

texta =“ abcdefg”

在要计数为字符串的文本两边加上“符号。 Mid(String,Start,长度)从字符串中选择一段文本

在字符串中没有从0开始的起始字符串

textb = mid(texta,2,2)

这使变量textb =“ bc”

textb = mid(texta,4,4)

这会使变量textb =“ defg”

textb = mid(texta,4,5)

这会使变量textb =“ defg”

没错,如果您要选择的文本长于最后一个字符结尾的可用文本

取决于您的程序,则必须放置陷阱以避免错误。

陷阱:

textb = mid(texta,4,5)

如果len(textb)《5则‘Len()返回字符串的长度,《意味着小于

msgbox“文本太短“’显示消息框字符串

exit sub‘这将退出您所在的子。结束代码。如果您使用的是函数,那么如果

在字符串中找到字符的位置,则可以退出函数

结束。

我们使用instr(Start,String1,String2)

texta =“ abcdefg”

textb = instr(1,texta,“ c”)’这将在字符串texta中找到字母c

textb现在等于3

注意:

Instr如果找不到则返回0(零)字符

重组:

这是一个令人讨厌的问题,例如,您希望“ abcdefg”成为“ defgabc”

texta =“ abcdefg”

textb = mid(texta,4,4) &mid(texta,1,3)

还算不错,但现在让我们添加instr()函数

说您想重新组织窗帘字符处的字符串,但每次都不是相同的位置

texta =“ abcdefg”

textb =“ gfabdec”

textc = mid(texta,instr(1,texta,“ c”),len(texta)-instr(1,texta,“ c” )+ 1)&mid(texta,1,instr(1,texta,“ c”)-1)

请注意部分len(texta)-instr(1,texta,“ c”)+ 1因为instr会计数您要查找的字符,所以您返回一个字符,以便mid()将字符yo您正在查找的字符串中的第一个字符串

textc现在等于“ cdefgab”

textd = mid(textb,instr(1,textb,“ c”),len(textb)-instr(1, textb,“ c”)+ 1)&mid(textb,1,instr(1,textb,“ c”)-1)

texted现在等于“ cgfabde”

让我们尝试查找不在字符串

texta =“ abcdefg”

textc = mid(texta,instr(1,texta,“ h”),len(texta)-instr(1,texta,“ h”)+ 1)&mid (texta,1,instr(1,texta,“ h”)-1)

您会收到错误消息,因为Mid()的起始部分不能= 0,因为字符串从1

开始,因此您必须避免运行时错误。这是执行此操作的一种方法

texta =“ abcdefg”

如果instr(1,texta,“ h”)《》 0则

textc = mid(texta,instr(1,texta,“ h “),len(texta)-instr(1,texta,” h“)+ 1)和mid(texta,1,instr(1,texta,” h“)-1)

else‘只有一个声明根据if情况

msgbox“无法在字符串中找到字符”’显示带有字符串的消息框

如果if

这几乎总结了您需要了解的有关字符串的所有信息

第2步:转换字符

十六进制:

我在本周早些时候发现的一个与十六进制(数字)函数的长度有关

它以十六进制形式返回字符串

hex(11111111)返回“ A98AC7”

当将ascii字符转换为十六进制时,您会这样做

texta =“ a”

hex(asc(texta))返回“ 61”

texta =“ k” hex(asc(texta))返回“ 6B”

对于ASCI字符中的大多数,字符串将为2个字符

除非are的值小于16,否则仅返回1个字符

如果您希望它们全部为2个字符演员,您将执行以下操作:

textb = hex(asc(texta))

如果len(textb)= 1,则

textb =“ 0”,并且textb‘为零而不是大写o

end if

第3步:文件编辑

要打开文件,您需要一个freefile和一个文件名

gfile = FreeFile’gfile现在是下一个可用的免费文件

c =“ c:\ test.txt”

然后有四种打开文件的方式

输入-您只能阅读。

输出-您只能写入,如果存在,它将删除文件。回车符和换行符的最后一个字符

附加-您只能写。它将添加到现有文件中。回车和换行符最后一个字符

二进制-读写。非常精确我现在唯一使用的一个。

用于构建日志文件,然后附加使用它会将新条目添加到文件末尾。

对于更复杂的日志文件,请将整个文件加载到变量中并添加

dim stro作为字符串‘这是必须的,否则将出现错误

gfile = FreeFile

c =“ c:\ test.txt”

open c对于二进制文件,例如#gfile’记住gfile是数字

stro = space $(lof(gfile))‘当打开二进制文件时,您必须知道要取的文本长度是lof(gfile)会返回多大gfile的长度和space $()返回一串空格,该空格是您输入的数字的长度

get #gfile,1,stro’从文件号获取,起始字节,变量保存到其中。并仅加载变量的长度

close #gfile

stro现在等于文件test.txt。

您可以通过

ffile = FreeFile

stro = “ New line”&VbCrLf&stro‘添加“ New line”并插入返回和换行符,后跟原始文本

open c for binary as #ffile

kill c

put #ffile,1,stro’如果文件越来越小,put将覆盖先前的信息,您应该先杀死该文件,然后将其删除。关闭#ffile

该文件中现在包含“新行”

我通过put函数发现的一件事是如果您尝试放置诸如

put #ffile,133,chr(1)之类的字符,则会出错,这将用字符1或十六进制0x01替换字节133处的字符

我在一个程序中执行此操作时发现我实际上添加了十六进制0x08000100000001,这非常奇怪。我通过将文件加载到变量并执行字符串mods来解决了这个问题

i = 133

stro = mid(stro,1,i-1)&chr(1)&mid(stro,i + 1,len (stro)-i)

然后

输入#ffile,1,stro

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3438

    浏览量

    92321
  • VB6
    VB6
    +关注

    关注

    0

    文章

    6

    浏览量

    10847
收藏 人收藏

    评论

    相关推荐

    请问h7b0VB误烧录750VB程序后如何修复?

    如题, h7b0VB芯片,用MDK,不小心下错了h750的程序,而且是用了2M Flash的程序。 现在h7b0vb在下程序的时候卡在erase过程。 通过DFU,能识别到芯片,但是读不到FLASH
    发表于 03-29 09:11

    vb语言和c++语言的区别

    VB语言和C++语言是两种不同的编程语言,虽然它们都属于高级编程语言,但在设计和用途上有很多区别。下面将详细比较VB语言和C++语言的区别。 设计目标:
    的头像 发表于 02-01 10:20 554次阅读

    KEIL中使用C对M0编程怎样对函数指定地址呢?

    KEIL中使用C对M0编程怎样对函数指定地址呢?对变量和常数的定位没问题,就是函数总搞不好。谢谢。
    发表于 01-18 07:14

    怎样通过编程降低ADUCM360的功耗?

    怎样通过编程降低ADUCM360的功耗
    发表于 01-12 06:31

    AD7616的通道无法转换怎么解决?

    (1)使用ad7616时,我激活了序列器功能,其他的通道对都正常,只有VA6VB6以及VA7和VB7一直输出0附近的值,我的硬件电路
    发表于 12-05 08:10

    单片机实际应用怎样防干扰?

    单片机实际应用怎样防止静电获得其他带来的干扰导致程序的跑飞
    发表于 11-09 07:25

    自适应PID单片机怎样实现?

    自适应PID单片机怎样实现?
    发表于 11-07 06:13

    基于VB的CAN总线测试软件设计

    电子发烧友网站提供《基于VB的CAN总线测试软件设计.pdf》资料免费下载
    发表于 10-13 11:39 0次下载
    基于<b class='flag-5'>VB</b>的CAN总线测试软件设计

    VB编程串口调试助手

    VB6.0编写的一款串口调试助手,里面附带了关于串口通信的文档,对初学串口通信是很好的资料。
    发表于 10-09 06:19

    MATLAB编程优化的应用介绍

    资源。近年来,优化技术没有发生显著变化,但应用领域却以显著的速度迅速发展。专业实践成功嵌入优化的使用至少需要三个先决条件。它们包括设计问题的数学建模、计算机编程知识和优化技术知识。现在有许多特殊
    发表于 09-21 07:07

    vb和labview做上位机哪种好

    )和LabVIEW是两个被广泛使用的工具。VB是一种基于Windows平台的编程语言,LabVIEW则是一种图形化编程语言。 那么,对于制造或是自动化行业的研发设计工程师来说,使用哪一种工具才更为合适呢?本文将详细分析
    的头像 发表于 08-31 17:37 1499次阅读

    labview和vb的优势在哪里

    ) 都是基于图形用户界面的编程语言,但它们各自拥有不同的优势和用途。本文将深入探讨 LabVIEW 和 VB 的优势,并比较二者之间的不同之处。 LabVIEW 的优势 1. 图形化编程:LabVIEW
    的头像 发表于 08-31 17:37 910次阅读

    labview和vb哪个效率高

    labview和vb哪个效率高 随着科学技术的不断发展和更新,计算机技术已经广泛应用于各个领域。为了更好地管理和控制各种设备和系统,人们开发了许多编程工具和软件,其中包括LabVIEW和VB两个软件
    的头像 发表于 08-31 17:36 722次阅读

    VB API函数大全

    VB程式开发所使的最全AIP函数使用说明.
    发表于 07-10 16:31 0次下载

    ESP8266如何与Winsock收发数据?

    具有 ASCII 字符串数据的 Visual Basic 6 中使用 Winsock。我想使用 TCP/IP 协议将该数据发送到 ESP8266,也从 ESP8266 发送到 VB6。这可能吗?如果是这样,它是如何工作的?我
    发表于 06-05 07:32