电子说
步骤1:字符串
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
全部0条评论
快来发表一下你的评论吧 !