vb6 0 乙個自用html標籤屬性訪問資料的類

2021-06-28 19:12:13 字數 4283 閱讀 1275

'/*

'類作用:類似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...