步驟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
-
編程
+關注
關注
88文章
3628瀏覽量
93824 -
VB6
+關注
關注
0文章
6瀏覽量
10886
發布評論請先 登錄
相關推薦
評論