怎样在VB6中编程

电子说

1.3w人已加入

描述

步骤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步:转换字符

VB6

十六进制:

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

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

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步:文件编辑

VB6

要打开文件,您需要一个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 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分