ASP 类成员变量、成员函数、构造析构函数

response.buffer=true

class CFoo
    dim publicParam ‘用 dim 申明公有成员变量
    private privateParam ‘用 private 申明私有成员变量
    ‘publicParam = “公有” ‘不能在 class
标记以内、类函数以外为成员变量赋值
    ‘const MAX_LEN = 5 ‘不能在 class 标记以内、类函数以外使用 const
   
    ‘该函数为构造函数,在使用 set new 创建对象时,自动执行
    private sub class_initialize()
        publicParam = “公有” ‘可以在这里为成员变量赋值
        privateParam = “私有”
    end sub
   
    ‘该函数为析构函数,在使用 set nothing 释放对象时,自动执行
    private sub class_terminate()
        response.Write “释放对象”
    end sub
   
    ‘公有成员函数(过程)
    ‘成员函数(过程)不需要也不能申明
    sub PrintParam(index)
        if index = 1 then
            call PrintPublicParam()
        elseif index = 2 then
            call PrintPrivateParam()
        end if
    end sub
   
    ‘私有成员函数(过程)
    ‘只是比公有成员函数(过程)多一个 private
    private sub PrintPublicParam()
        response.Write publicParam
    end sub
澳门新葡萄京官网首页 ,   
    private sub PrintPrivateParam()
        response.Write privateParam
    end sub
end class

公司的网站基本完功了,还差一个新闻发布系统,我可不想做了网站还要做信息采编,公司就我一个搞电脑的了。唉!不是IT公司就这样了。

‘ 应用缓存技术.

dim obj
set obj = new CFoo ‘自动调用 class_initialize 函数,为
publicParam、privateParam 赋值
obj.publicParam = “新的公有”
obj.privateParam = “新的私有” ‘将发生错误,因为 privateParam
是私有变量
call obj.PrintParam(1) ‘显示 publicParam 的值
call obj.PrintPublicParam() ‘将发生错误,因为 PrintPublicParam
是私有函数
set obj = nothing ‘自动调用 class_terminate 函数,显示“释放对象”

所以就去网上找免费新闻代码,倒是找了很多,可是就没有房地产方面的新闻代码,郁闷中。。。同事给我说他听说过一个网页小偷的程序,可以把别人网站的东东拿下来用,于是就去网上找了找,细想一下,发现这种东东的实现方法,就自己写了一个,把公司的网站搞定了。。。

dim lostnum

相关阅读

首先是读新闻列表:

‘ 防止dmax过大而dstep过小.

  • ASP(VBScript)
    类中有没有静态方法、静态函数、静态成员这些

newslist.asp <%

dim shownum

‘先读session,为空再去取别人网站的。嘿嘿!取了就写session
if session(“aaa”)=”” then
Dim url,Html
url = “” ’嘿嘿,这里还是不要透露别人的网址的好
dim Http
set Http=server.createobject(“MSXML2.XMLHTTP”)  ’定义一个XMLHTTP对像
Http.open “GET”,url,false  
Http.send()  ’用它来读取对方网页
if Http.readystate=4 then  ’readstate读取状态为4则成功,继续后面的,不成功当然就不用继续处理了
dim objstream
set objstream = Server.CreateObject(“adodb.stream”)  ’定义一个stream,因为读过来的直接拿出来是乱码的,所以得处理一下
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write Http.responseBody
objstream.Position = 0
objstream.Type = 2
objstream.Charset = “GB2312”
html = objstream.ReadText  ’转好码,就放到html里,好关闭这些对像
objstream.Close
set objstream = nothing
set http=nothing

delayshow(dstep,dmax)

dim aaa,bbb,ccc ’这里定义的都是用来处理结果的,要把中间自己要用的新闻给截取出来
aaa=cstr(html)
bbb=split(aaa,”<div id=””onlinemb_05″”>”)
aaa=bbb(1)
ccc=split(bbb(1),”</div>”)
aaa=ccc(0)

sub delayshow(dstep,dmax)

‘这里是把新闻地址转到自己的新闻显示页面,把本来的新闻地址当参数传给页面
aaa=replace(aaa,”href=”””,”href=””newsshow.asp?url=”) 
aaa=replace(aaa,”target=””_blank”””,””)


dmax表示要处理多少dmax(步)才能完成全过程,dstep表示已处理的占全过程的大致百分比.

‘这里就是写session了
session(“aaa”)=aaa
end if
end if

dim total

‘最后把处理好的输出
Response.write session(“aaa”)
%>

‘ 显示所有画面.

接下来就是新闻内容显示页面了,和前面的原理是一样的,只是新闻地址是用参数传来的,下面就不写注释了。。。

dim dtemp

newsshow.asp
<%
Dim newsurl,newshtml
newsurl = request.querystring(“url”)
dim newsHttp
set newsHttp=server.createobject(“MSXML2.XMLHTTP”)
newsHttp.open “GET”,newsurl,false
newsHttp.send()
if newsHttp.readystate=4 then
dim newsobjstream
set newsobjstream = Server.CreateObject(“adodb.stream”)
newsobjstream.Type = 1
newsobjstream.Mode =3
newsobjstream.Open
newsobjstream.Write newsHttp.responseBody
newsobjstream.Position = 0
newsobjstream.Type = 2
newsobjstream.Charset = “GB2312”
newshtml = newsobjstream.ReadText
newsobjstream.Close
set newsobjstream = nothing
set newshttp=nothing
‘response.write newshtml
dim newsaaa,newsbbb,newsccc,newsddd
newsaaa=cstr(newshtml)
newsbbb=split(newsaaa,”<br>” & vbcrlf & ”        <table
width=””100%”” border=””0″”>”)
newsaaa=”<table width=””100%”” border=””0″”>” & newsbbb(1)
newsccc=split(newsaaa,”(编辑”)
newsaaa=newsccc(0) & “</td></tr></table>”
newsaaa=replace(newsaaa,”table width=””590″””,”table width=””100%”””)
response.write newsaaa
‘response.write newsbbb
end if
%>

‘ 过渡变量.

我这里截取自己需要的部份的处理方法还是太笨了,不知道哪些兄弟能指点一下。。。

total=100

 

dtemp=dstep

dstep=dstep+lostnum

if (dstep*total)/dmax1 then


当画面连1%都没有时,则不画,同时用变量lostnum存放未画的总数,便于下次调用本过程时继续.

lostnum=lostnum+dtemp

else

for ccc=1 to fix((dstep*total)/dmax)

‘ 取整数.

Response.Flush

shownum=shownum+fix((dstep*total)/dmax)

lostnum=0

‘ 显示缓存里的图片,变量shownum用于存放目前已画的图片.

end if

end sub

sub showlost()

for ccc=1 to (100-shownum)

Response.Write (“img src=””suifengqiwu/images/delay1.jpg”””)

‘ 如果取余造成不能画完100次,由showlost()将余下未画的显示为已处理.

next

Response.Write “BR”

Response.Flush

end sub

发表评论

电子邮件地址不会被公开。 必填项已用*标注