注册 登录
编程论坛 ASP技术论坛

[已解决]请问高手们ASP网页中输出数据库值时如何调用CutStr函数?

发布于 2009-10-17 17:04, 1643 次点击
在ASP网页数据库字段值输出到网页表格时想把超长的汉字用...代替,却不知道如何调用下面这个函数,请高手们指点迷津……
这里先谢谢了……
Function CutStr(Str)
  Dim P_num
  Dim I,X
  If StrLen(Str)<=16 Then

  Else
   P_num=0
   X=0
   Do While Not P_num > 16
    X=X+1
    If Asc(Mid(Str,X,1))<0 Then
     P_num=Int(P_num) + 2
    Else
     P_num=Int(P_num) + 1
    End If
    Cutstr=Left(Trim(Str),X)&"..."
   Loop
  End If
 End Function


[ 本帖最后由 msf6688 于 2009-10-18 08:41 编辑 ]
12 回复
#2
天涯听雨2009-10-17 17:06
<%
=CutStr(rs("title"))
%>
#3
2009-10-17 17:45
试过,没有返回值。我的代码大概是这样的:
好象其中有错误的地方造成没有值返回,我不知道是哪儿出错了......
<body>
<script language='VBScript'>
 function cutstr(str)
If len(str)<=10 Then
   cutstr=str
   Else
   P_num=0
   X=0
   Do While Not P_num > 20
    X=X+1
    If Asc(Mid(str,X,1))< 0 Then
     P_num=Int(P_num) + 2
    Else
     P_num=Int(P_num) + 1
    End If
    cutstr=Left(Trim(str),X)&"..."
    Loop
End If
end function
</script >

set rsz=server.CreateObject("adodb.recordset")
        sqlm="select top 1 * from News where BigClassName='最新动态' order by infotime desc"
        rsz.open sqlm,conn,1,1
        if not rsz.eof then
        

        ........
<td><%=CutStr(rsz("title"))%> </td>
          else
        response.Write("暂无最新信息!")
        end if
        rsz.close
        set rsz=nothing
        %>
 </body>  
 


[ 本帖最后由 msf6688 于 2009-10-17 17:50 编辑 ]
#4
天涯听雨2009-10-17 17:48
你的函数错了,用这个

'========================================================================================
'' @功能说明: 截取源字符串Str的前LenNum个字符(一个中文字符为2个字节长)
'' @参数说明:  - str [string]: 源字符串
'' @参数说明:  - LenNum [int]: 截取的长度
'' @返回值:   - [string]: 转换后的字符串
Function CutStr(Str,LenNum)
    Dim P_num
    Dim I,X
    If StrLength(Str)<=LenNum Then
       Cutstr=Str
    Else
       P_num=0
       X=0
       Do While Not P_num > LenNum-2
          X=X+1
          If Asc(Mid(Str,X,1))<0 Then
             P_num=Int(P_num) + 2
          Else
             P_num=Int(P_num) + 1
          End If
          Cutstr=Left(Trim(Str),X)&"…"
       Loop
    End If
End Function

然后这样调用:<%=CutStr(rs("title"),20)%>
#5
2009-10-17 17:56
谢谢你,我试试先……
#6
2009-10-17 17:59
还是不行,我把你的代码换上后不出错了,可是什么也没有显示。返回的是空值
我把代码直接写到<%读数据库...  %>里可以用,就是调用<%CutStr(rs("Title"),20)%>要不出错,要不就啥也不显示。

[ 本帖最后由 msf6688 于 2009-10-17 18:17 编辑 ]
#7
chenguoxing5172009-10-18 01:24
是不是rsz.eof 读出来为空,根本就没有找到记录?
#8
2009-10-18 05:43
回复 6楼 msf6688
谢谢各位,问题解决。我把函数放到<% Function Cutstr()  End Function%>里保存为CutStr.asp,然后包含进ASP文件,用<%=CutStr(rsz("Title"),20)%>调用成功。谢谢各位大侠帮忙啦……

[ 本帖最后由 msf6688 于 2009-10-18 08:40 编辑 ]
#9
aspic2009-10-18 08:53
<script language='VBScript'>
写在这个里面就比较厉害了~
#10
2009-10-18 13:20
回复 9楼 aspic
哈哈!~我也就一菜菜鸟,做网页都是自己瞎琢磨,实在不行了就找高手问喽~
问题是解决了,可我自己并不知道为什么会这样,大侠给讲解下就更好喽……
#11
aspic2009-10-18 15:02
<script language='VBScript'>
这样写是 用于客户端的 也就是浏览器解析的 当然 vbscript是ie专属的
而你需要的是在服务器解析的 就是包含在<%%>里面的代码
#12
2009-10-19 06:46
回复 11楼 aspic
谢谢版主的耐心指教,受益非浅啊。做网页对我来说是一个痛苦的过程,因为我是从零开始……
可是看见自己做的网页发布到网上大家都可以浏览,却又是一个快乐的结局^^^^^^^
所以我痛并快乐着……
#13
aspic2009-10-19 08:48
都是从零开始的~
1