'/*
'類作用:類似html標籤,在標籤內屬性訪問內容
'約定:
'1.:所有標籤、屬性必須用小寫
'2.:沒有html標籤巢狀,僅利用單個標籤屬性來訪問內容
'3.:每個標籤名字必須都不相同
'*/' 定義屬性
private allcontent as string, temp as string
'//所有內容
public function content(optional str as string = "")
'//設定內容
if len(str) > 0 then
allcontent = str
'//返回內容
else
content = allcontent
end if
end function
'// 標籤
public function label(lbname as string, optional isadd as boolean = false)
'//取得標籤
if isadd = false then
if len(lbname) = 0 then
label = ""
exit function
end if
dim lbf, lbb
lbf = "<" & lbname
lbb = ""
if instr(lcase(allcontent), lbb) > 0 then
'//取得標籤內容
label = lbf & zq(allcontent, lbf, lbb) & lbb
else
label = ""
exit function
end if
end if
'//插入標籤
if isadd = true then
if instr(allcontent, "") = 0 then
allcontent = allcontent & "<" & lbname & ">"
else
msgbox "<" & lbname & ">已存在,不能重複新增!", , "提示"
end if
end if
end function
'//取得屬性
public function attr(lb as string, strname as string, optional strvalue as string = "")
'//判斷標籤是否存在
if instr(allcontent, "") = 0 then
call label(lb, true) '//新增標籤
end if
'//得取屬性
if len(strvalue) = 0 then
if instr(eqnosp(label(lb)), " " & strname & "=") <> 0 then
attr = zq(eqnosp(label(lb)), " " & strname & "=""", """")
else
attr = ""
end if
'//設定屬性
else
dim oldlb, newlb
'//取得原標籤內容
oldlb = label(lb)
'//取得新標籤內容
'//屬性不存在則新增
if instr(eqnosp(label(lb)), trim(strname) & "=""") = 0 then
newlb = "<" & lb & " " & strname & "=""" & strvalue & """" & split(eqnosp(label(lb)), "<" & lb)(1)
'//屬性存在則修改之
else
newlb = onechange(eqnosp(label(lb)), trim(strname) & "=""", """", strvalue)
end if
'//標籤更新到 allcontent 裡面
allcontent = replace(allcontent, oldlb, newlb)
end if
end function
'// 擷取一段字串,如: abc:ss; 中取出ss,
'引數: ct :傳入內容,如:abc:ss;
'引數: f : 斷前,如: abc:
'引數: b : 斷後,如: ;
'引數: p : 當有多個相同時候,0則取前面乙個,否則取後面的
'返回:ss
'private function zq(ct, f, b, optional p as integer = 0)
' dim arr, a, n
' n = 1
' arr = split(ct, f)
'' msgbox "__" & ct
'' msgbox "__" & f
'' msgbox "__" & b
' for a = 0 to ubound(arr)
' if instr(arr(a), b) then
' zq = split(arr(a), b)(0)
' if p = 0 then exit function
' end if
' next
'end function
private function zq(allstr, sta, fin) as string
'hex '擷取函式
dim arr
dim i, c
arr = split(allstr, sta)
for i = 1 to ubound(arr)
if instr(arr(i), fin) then c = split(arr(i), fin)(0)
next i
zq = c
end function
'//作用:去掉等號左右空格鍵,如: href =" 轉成無空格: href="
private function eqnosp(lb as string)
for i = 0 to 10
lb = replace(lb, " =", "=")
lb = replace(lb, "= ", "=")
next
eqnosp = lb
end function
'作用:前後文修改內容,如將abc:520; 中,修改為:abc:114;
private function onechange(c, f, b, r)
dim oc, nc
oc = f & zq(c, f, b) & b
nc = f & r & b
' msgbox oc
' msgbox nc
onechange = replace(c, oc, nc)
end function
然後這樣使用這個類
private sub command1_click()
dim d as clsdata
set d = new clsdata
'// .content
d.content ("") '設定全域性標籤內容
msgbox "全部標籤內容:" & d.content '沒有引數則為讀取全部標籤內容
'// .label
msgbox "標籤內容:" & d.label("a") '乙個引數為讀取標籤內容
call d.label("c", true) '//兩個引數,第二個為true則是新增乙個c標籤
msgbox "全部標籤內容:" & d.content
'// .attr
msgbox "取得屬性內容:" & d.attr("a", "style") '//取得a標籤屬性內容
call d.attr("a", "style", "我要修改style屬性") '//修改a標籤style屬性
call d.attr("c", "data", "sorry") '//修改c標籤data屬性,因為data屬性不存在,所以自動建立了乙個屬性
msgbox "全部標籤內容:" & d.content
end sub
學習乙個月vb6 0總結
vb6.0學習了將近乙個月了,總結下這乙個月學習vb6.0的心得,從開始的渾渾噩噩,昏天度日,到現在的學習新的知識,知道學習是乙個枯燥乏味的過程。通過學習知道了自己知識的匱乏,想要將來不被社會淘汰,只有填充自己的知識,這是一條唯一的出路。因為基礎太差,導致自己學習起來不是特別的順利,遇到好些基礎性的...
建立第乙個 HTML 標籤
本關任務 建立你的第乙個標籤,文字內容為welcome to educoder。實現的效果如下 上面這行 它表示乙個html元素。大多數 html 元素都是由開始標籤和結束標籤組成的,通常成對出現 這樣。可以發現 結束標籤就比開始標籤多了乙個斜槓 文字內容為welcome to educoder的建...
Fieldset 乙個不常用的HTML標籤
fieldset是乙個不常用的html標籤,很有意思,其語法如下 fieldset名稱 fieldset元素用於對表單中的元素進行分組並在文件中區別標出文字。它與視窗框架的行為有些相似。fieldset在 internet explorer 4.0 及以上版本的html 和的指令碼中可用。field...