| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 953 人关注过本帖
标题:编手们看看一小段截取程序,为什么没能成功???谢谢!
取消只看楼主 加入收藏
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
 问题点数:0 回复次数:13 
编手们看看一小段截取程序,为什么没能成功???谢谢!

拿到一段程序,是截取标题长度的程序。。。。但是没有能截取成功。。。我看不出有什么问题。。麻烦兄弟们给指点指点。。。


也就是说....我用<script src="my_news.asp?参数一&参数二&....&参数十"></script>来调用下面的程序的时候,用<script src="my_news.asp?max=20&data=0"></script>带上参数的时候没有作用,都得到max=40和DATA=1这样的默认效果.....但是没有见程序的错误在哪里...


——————————————————————————————————————————
<%
Dim strConnString, conn, SQL, RS, strDateType
Dim i, strSubject, strTrueSubject, strNews
Dim strShowLen, strMaxLen, strTime, strClick, StrImg, strToday, strBigclassName, strSmallClassName, strSpecialName, strPath,

strwhat
Dim m_bOverFlow, strTip

strMaxLen = 40
strShowLen = 10
strDate = 1
strTime = 0
strClick = 0
strImg = 0
strToday = 0
strFocusnews = 0
strGoodnews = 0
strhot = 0
strWhat = "NewsID"
strBigClassName = "大类名称"
strSmallClassName = "小类名称"
strSpecialName = "专题名称"
strDateType = "cnmd"
strPath = WebUrl
if CLng(Request.QueryString("Max")) > 0 then strMaxLen = Request.QueryString("Max")
if CLng(Request.QueryString("Show")) > 0 then strShowLen = Request.QueryString("Show")
if Request.QueryString("Date") <> "" then strDate = 1
if Request.QueryString("Time") <> "" then strTime = 1
if Request.QueryString("Click") <> "" then strClick = 1
if Request.QueryString("Img") <> "" then strImg = 1
if Request.QueryString("Today") <> "" then strToday = 1
if Request.QueryString("hot") <> "" then strhot = 1
if Request.QueryString("GoodNews") <> "" then strGoodNews = 1
if Request.QueryString("FocusNews") <> "" then strFocusNews = 1
if Request.QueryString("What") = "click" then
strWhat = "click"
else
strWhat="NewsID"
end if
if Request.QueryString("DateType") <> "" then strDateType = Request.QueryString("DateType")
if Request.QueryString("BigClassName")<>"" then
strBigClassName = Request.QueryString("BigClassName")
else
strBigClassName = ""
end if
if Request.QueryString("SpecialName") <> "" then
strSpecialName = Request.QueryString("SpecialName")
else
strSpecialName=""
end if
if Request.QueryString("SmallClassName")<>"" then
strSmallClassName = Request.QueryString("SmallClassName")
else
strSmallClassName = ""
end if
if Request.QueryString("Path") <> "" then strPath = Request.QueryString("Path")
if Right(strPath,1)<>"/" then strPath = strPath + "/"

SQL = "SELECT top " & strShowLen & " * FROM news WHERE checked=true"
if strBigClassName<>"" and strSmallClassName="" then SQL = SQL & " and BigClassName = '" & strBigClassName &"'"
if strBigClassName<>"" and strSmallClassName<>"" then SQL = SQL & " and BigClassName = '" & strBigClassName &"' and

SmallClassName = '" & strSmallClassName &"'"
if strBigClassName="" and strSmallClassName<>"" then SQL = SQL & " and SmallClassName = '" & strSmallClassName &"'"
if strSpecialName<>"" then SQL = SQL & " and SpecialName = '" & strSpecialName &"'"
if strhot=1 then SQL = SQL & " and hot=true"
if strGoodNews=1 then SQL = SQL & " and goodnews=true"
if strFocusNews=1 then SQL = SQL & " and Focusnews=true"
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = SQL & " ORDER BY " & strWhat & " DESC"
RS.open sql,Conn,1,1

if RS.EOF or RS.BOF then
Response.Write ("document.write('还没有新闻或该新闻不存在!');")
else
Response.Write ("document.write('<table width=94% border=0 cellspacing=0 cellpadding=0>');")
Do while Not RS.EOF
strSubject = HTMLDecode(RS("Title"))
strTrueSubject = GetTrueLength(strSubject,strSpaceBar)
m_bOverFlow = CheckOverFlow(strSubject)
if m_bOverFlow = True then
strTip = strSubject
else
strTip = ""
end if

strFaceURL = "" '如果标题前想放图片,就在“”内加上:<img src=" & strPath & "images/go.gif width=10 height=9>&nbsp;
if strFaceURL = "" then strFaceURL="<li>"
strNews = strFaceURL & "<a href=" & strPath & "shownews.asp?NewsID=" & RS("NewsID") & " title=""" & strTip & """

target=""_blank"">" & strTrueSubject & "</a>" & strSpaceBar

if strDate=1 then
if strTime=1 then
strNews = strNews & "(" & ChkDate(RS("updatetime")) & " " & TimeValue(RS("updatetime")) & ")"
else
strNews = strNews & "(" & ChkDate(RS("updatetime")) & ")"
end if
else
if strTime=1 then strNews = strNews & "(" & TimeValue(RS("updatetime")) & ")"
end if

if strClick = 1 then strNews = strNews & " <font color=red>" & RS("Click") & "</font>"
if strImg = 1 and rs("image")>0 then strNews = strNews & " <img src=" & strPath & "images/img.gif height=9>"
if strToday = 1 and DateValue(rs("updatetime"))=DateValue(date()) then strNews = strNews & " <img src=" & strPath &

"images/new.gif height=9>"
Response.Write ("document.write('<tr><td style=""FONT-SIZE: 12px; LINE-HEIGHT: 140%"">" & strNews & "<br></td></tr>');")
RS.MoveNext
Loop
Response.Write ("document.write('</table>');")
End if
Response.End
RS.close
SET RS = Nothing
conn.close
SET Conn = Nothing

function ChkDate(fDate)
if fDate = "" or vartype(fDate) = vbNull then
exit function
end if

select case strDateType
case "cnymd"
ChkDate = year(RS("updatetime")) &"年"& Month(RS("UpdateTime")) &"月"& Day(RS("UpdateTime")) &"日"
case "cnmd"
ChkDate = Month(RS("UpdateTime")) &"月"& Day(RS("UpdateTime")) &"日"
case "ymd"
ChkDate = DateValue(RS("UpdateTime"))
case "ydm"
ChkDate = Year(RS("UpdateTime")) &"/"& Day(RS("UpdateTime"))&"/"& Month(RS("UpdateTime"))
case "dmy"
ChkDate = Day(RS("UpdateTime")) &"/"& Month(RS("UpdateTime"))&"/"& year(RS("UpdateTime"))
case "mdy"
ChkDate = Month(RS("UpdateTime")) &"/"& Day(RS("UpdateTime"))&"/"& year(RS("UpdateTime"))
case "dm"
ChkDate = Day(RS("UpdateTime")) &"/"& Month(RS("UpdateTime"))
case else
ChkDate = Month(RS("UpdateTime")) &"/"& Day(RS("UpdateTime"))
End Select
end function

function CheckOverFlow(strChinese)
'判断字符长度是否溢出
dim i, lenTotal, strWord
if strChinese = "" or vartype(strChinese) = vbNull or CLng(strMaxLen) <= 0 then
CheckOverFlow = False
exit function
end if
lenTotal = 0
for i=1 to Len(strChinese)
strWord = mid(strChinese, i, 1)
if asc(strWord) < 0 or asc(strWord) > 127 then
lenTotal = lenTotal + 2
else
lenTotal = lenTotal + 1
end if
next
'判断字符是否溢出
if lenTotal > strMaxLen then
CheckOverFlow = True
else
CheckOverFlow = False
end if
end function

function GetTrueLength(strChinese,strSpaceBar)
'截取正确的英文/汉字长度
dim i, j, strTail, lenTotal, lenWord, strWord, bOverFlow, RetString
if strChinese = "" or vartype(strChinese) = vbNull or CLng(strMaxLen) <= 0 then
GetTrueLength = ""
exit function
end if
strTail = "..."
bOverFlow = False
lenTotal = 0
for i=1 to Len(strChinese)
strWord = mid(strChinese, i, 1)
if asc(strWord) < 0 or asc(strWord) > 127 then
lenTotal = lenTotal + 2
else
lenTotal = lenTotal + 1
end if
next
'判断字符是否溢出
if lenTotal > strMaxLen then bOverFlow = True
strSpaceBar = ""
if bOverFlow = True then
'字符溢出,去尾
lenWord = 0
RetString = ""
for i=1 to Len(strChinese)
strWord = mid(strChinese, i, 1)
if asc(strWord) < 0 or asc(strWord) > 127 then
lenNow = 2
else
lenNow = 1
end if
lenWord = lenWord + lenNow
'截掉多余部分
if lenWord <= (strMaxLen - Len(strTail)) then
RetString = RetString + strWord
else
RetString = RetString + strTail
lenWord = lenWord + Len(strTail) - lenNow
if (strMaxLen-lenWord)>0 then
for j =1 to strMaxLen-lenWord
strSpaceBar = strSpaceBar + "&nbsp;"
next
end if
GetTrueLength = RetString
exit for
end if
next
else
'字符不溢出,填充空位
RetString = strChinese
if (strMaxLen-lenTotal)>0 then
for i =1 to strMaxLen-lenTotal
strSpaceBar = strSpaceBar + "&nbsp;"
next
end if
GetTrueLength = RetString
end if
end function

function HTMLDecode(fString)
fString = replace(fString, "&amp;", "&")
fString = replace(fString, "&gt;", ">")
fString = replace(fString, "&lt;", "<")
fString = replace(fString, "&quot;", Chr(34))
fString = Replace(fString, "…", "...")
HTMLDecode = fString
end function
%>



————————————————————————————————————————————————

[此贴子已经被作者于2006-8-24 13:34:02编辑过]

搜索更多相关主题的帖子: 成功 
2006-08-19 19:31
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
该程序的用途是下面说明,但是DATA和MAX这两个参数无论如何设置都没有作用,都是取默认值。。。奇怪了。。。

--------------------------------------------------



调用方法:<script src="my_news.asp?参数一&参数二&....&参数十"></script>

说明:my_news.asp 必须放在信息首页所在目录。首个参数要用“?”起头,之后的参数用“&”间隔。

参 数 说 明 默认值 用 法
Max 每条信息最多显示字符(双数) 40 Max=50
Show 设定显示条数,范围 5-30 条 10 Show=20
Date 显示日期,不显示为0,显示则不输入该参数 1 Date=0
Time 显示时间,显示为1,不显示则不输入该参数 0 Time=1
Click 显示点击数,显示为1,不显示则不输入该参数 (否) Click=1
Img 显示图文标识,显示为1,不显示则不输入该参数 (否) Img=1
Today 今日信息“NEW”标识,显示为1,不显示则不输入该参数 (否) Today=1
What 选择按什么排序:NewsID(信息ID号),Click(点击数) NewsID What=Click
hot 选择热点信息,显示为1,不显示则不输入该参数 (否) hot=1
GoodNews 选择推荐信息,显示为1,不显示则不输入该参数 (否) GoodNews=1
FocusNews 选择焦点信息,显示为1,不显示则不输入该参数 (否) FocusNews=1
BigClassName 选择信息大类,值为大类名称 BigClassName=行业动态
SmallClassName 选择信息小类,值为小类名称 SmallClassName=信息动态
SpecialName 选择信息专题,值为专题名称 SpecialName=信息简报
DateType

设置日期显示格式,可用值:
cnymd 效果:2001年12月21日
cnmd 效果:12月21日
ymd 效果:2001/12/21
ydm 效果:2001/21/12
mdy 效果:12/21/2001
dmy 效果:21/12/2001
md 效果:12/21
dm 效果:21/12

cnmd DateType=cnmd
Path 信息所在路径,可以是其他服务器上的信息 (程序所在位置) path=http://bii.huizhou.gov.cn/


--------------------------------------------------

[此贴子已经被作者于2006-8-19 23:59:07编辑过]


2006-08-19 23:41
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
高手在哪里.................小弟我找你....................

2006-08-21 13:46
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
?????????????

2006-08-24 00:08
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
也就是说....我用<script src="my_news.asp?参数一&参数二&....&参数十"></script>来调用上面的程序的时候,用<script src="my_news.asp?max=20&data=0"></script>带上参数的时候没有作用,都得到max=40和DATA=1这样的默认效果.....但是没有见程序的错误在哪里...


谢谢楼上的关注....

[此贴子已经被作者于2006-8-24 12:49:49编辑过]


2006-08-24 12:49
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
没有人知道吗?呜................................

2006-08-28 18:44
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
谢谢上面兄弟帮顶.......................:)

2006-08-29 17:50
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
再次求教................

2006-08-30 10:09
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
诚意求教............................:)

2006-08-31 18:32
开心人
Rank: 1
等 级:新手上路
帖 子:216
专家分:0
注 册:2005-11-1
收藏
得分:0 
决心请教...............:)

2006-08-31 20:51
快速回复:编手们看看一小段截取程序,为什么没能成功???谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037083 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved