繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP应用 >> ASP的自定义实用函数表(3)

ASP的自定义实用函数表(3)

2006-02-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  纯编码实现Access数据库的建立或压缩
关键字:函数 实用 ASP

  纯编码实现Access数据库的建立或压缩

<%

'#######以下是一个类文件,下面的注解是调用类的方法################################################

'# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用

'# Access 数据库类

'# CreateDbFile 建立一个Access 数据库文件

'# CompactDatabase 压缩一个Access 数据库文件

'# 建立对象方法:

'# Set a = New DatabaseTools

'# by (萧寒雪) s.f.

'#########################################################################################

Class DatabaseTools

Public function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath)

'建立数据库文件

'If DbVer is 0 Then Create Access97 dbFile

'If DbVer is 1 Then Create Access2000 dbFile

On error resume Next

If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\"

If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))

If DbExists(SavePath & dbFileName) Then

Response.Write ("对不起,该数据库已经存在!")

CreateDBfile = False

Else

Dim Ca

Set Ca = Server.CreateObject("ADOX.Catalog")

If Err.number<>0 Then

Response.Write ("无法建立,请检查错误信息
" & Err.number & "
" & Err.Description)

Err.Clear

Exit function

End If

If DbVer=0 Then

call Ca.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName)

Else

call Ca.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SavePath & dbFileName)

End If

Set Ca = Nothing

CreateDBfile = True

End If

End function

Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath)

'压缩数据库文件

'0 为access 97

'1 为access 2000

On Error resume next

If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\"

If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))

If DbExists(SavePath & dbFileName) Then

Response.Write ("对不起,该数据库已经存在!")

CompactDatabase = False

Else

Dim Cd

Set Cd =Server.CreateObject("JRO.JetEngine")

If Err.number<>0 Then

Response.Write ("无法压缩,请检查错误信息
" & Err.number & "
" & Err.Description)

Err.Clear

Exit function

End If

If DbVer=0 Then

call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data

Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")

Else

call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &

SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &

SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")

End If

'删除旧的数据库文件

call DeleteFile(SavePath & dbFileName)

'将压缩后的数据库文件还原

call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName)

Set Cd = False

CompactDatabase = True

End If

end function

Public function DbExists(byVal dbPath)

'查找数据库文件是否存在

On Error resume Next

Dim c

Set c = Server.CreateObject("ADODB.Connection")

c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath

If Err.number<>0 Then

Err.Clear

DbExists = false

else

DbExists = True

End If

set c = nothing

End function

Public function AppPath()

'取当前真实路径

AppPath = Server.MapPath("./")

End function

Public function AppName()

'取当前程序名称

AppName = Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME") ,"/",-1,1))+1,Len(Request.ServerVariables("SCRIPT_NAME")))

End Function

Public function DeleteFile(filespec)

'删除一个文件

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")

If Err.number<>0 Then

Response.Write("删除文件发生错误!请查看错误信息
" & Err.number & "
" & Err.Description)

Err.Clear

DeleteFile = False

End If

call fso.DeleteFile(filespec)

Set fso = Nothing

DeleteFile = True

End function

Public function RenameFile(filespec1,filespec2)

'修改一个文件

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")

If Err.number<>0 Then

Response.Write("修改文件名时发生错误!请查看错误信息
" & Err.number & "
" & Err.Description)

Err.Clear

RenameFile = False

End If

call fso.CopyFile(filespec1,filespec2,True)

call fso.DeleteFile(filespec1)

Set fso = Nothing

RenameFile = True

End function

End Class

%>

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

一套加解密字符串的函数

<%

Function Encrypt(theNumber)

On Error Resume Next

Dim n, szEnc, t, HiN, LoN, i

n = CDbl((theNumber + 1570) ^ 2 - 7 * (theNumber + 1570) - 450)

If n < 0 Then szEnc = "R" Else szEnc = "J"

n = CStr(abs(n))

For i = 1 To Len(n) step 2

t = Mid(n, i, 2)

If Len(t) = 1 Then

szEnc = szEnc & t

Exit For

End If

HiN = (CInt(t) And 240) / 16

LoN = CInt(t) And 15

szEnc = szEnc & Chr(Asc("M") + HiN) & Chr(Asc("C") + LoN)

Next

Encrypt = szEnc

End Function

Function Decrypt(theNumber)

On Error Resume Next

Dim e, n, sign, t, HiN, LoN, NewN, i

e = theNumber

If Left(e, 1) = "R" Then sign = -1 Else sign = 1

e = Mid(e, 2)

NewN = ""

For i = 1 To Len(e) step 2

t = Mid(e, i, 2)

If Asc(t) >= Asc("0") And Asc(t) <= Asc("9") Then

NewN = NewN & t

Exit For

End If

HiN = Mid(t, 1, 1)

LoN = Mid(t, 2, 1)

HiN = (Asc(HiN) - Asc("M")) * 16

LoN = Asc(LoN) - Asc("C")

t = CStr(HiN Or LoN)

If Len(t) = 1 Then t = "0" & t

NewN = NewN & t

Next

e = CDbl(NewN) * sign

Decrypt = CLng((7 + sqr(49 - 4 * (-450 - e))) / 2 - 1570)

End Function

%>

Original number: 69

Encrypt(69) returns: JNMQMOJ8

Decrypt("JNMQMOJ8") returns: 69

Another example using variables instead:

Encrypt(Request.Form("ID"))

Encrypt(myVar)

Decrypt(Request.QueryString("id"))

Decrypt("JNMQMOJ8")

Decrypt(myVar)

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

在ASP控制数字及字母输入

方法一:

str=Request("string")

temp=Server.URLEncode(str)

if str=temp then

response.write "你输入的不是英文或数字"

end if

文法二:

str=Request("string")

for i=1 to len(str)

a=mid(string,i,1)

if ((asc(a)<"0" and asc(a)>"9" ) or (asc(a)asc("z"))) then

  response.write "你输入的不是英文或数字"

 end if

next i

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

access数据库表改名的一段代码

<%

Call RenameTable("Provider=Microsoft.Jet.OLEDB.4.0; Data

Source=c:\example.mdb", "test", "changed")

Sub RenameTable (conStr, oldName, newName)

'Has to be OLE DB connection

'Create object and connect to DB...

Dim objADOXDatabase

Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")

objADOXDatabase.ActiveConnection = conStr

'Change the name...

objADOXDatabase.Tables(oldName).Name = newName

'Clean up...

Set objADOXDatabase = Nothing

End Sub

%>

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

禁止从站点外部提交数据

<%

server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))

server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

if mid(server_v1,8,len(server_v2))<>server_v2 then

response.write "

"

response.write "

"

response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!"

response.write "

"

response.end

end if

%>

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

由于需要,于是最近写了这么一个函数,是用来查找数据库中指定字段按拼音首字母的记录用的:

Function GetSQLString(ByVal Index)

Dim Ascii(27)

Dim Line,Row,Char,strTemp

Dim i,j

Ascii(1) = "45217,45252"

Ascii(2) = "45253,45310;45485,45566;45731,45760"

Ascii(3) = "45761,45822;45985,46078;46241,46317"

Ascii(4) = "46318,46334;46497,46590;46753,46825"

Ascii(5) = "46826,46846;47009,47009"

Ascii(6) = "47010,47102;47265,47296"

Ascii(7) = "47297,47358;47521,47613"

Ascii(8) = "47614,47614;47777,47870;48033,48118"

Ascii(9) = ""

Ascii(10) = "48119,48126;48289,48382;48545,48638;48801,48894;49057,49061"

Ascii(11) = "49062,49150;49313,49323"

Ascii(12) = "49324,49406;49569,49662;49825,49895"

Ascii(13) = "49896,49918;50081,50174;50337,50370"

Ascii(14) = "50371,50430;50593,50613"

Ascii(15) = "50614,50621"

Ascii(16) = "50622,50686;50849,50905"

Ascii(17) = "50906,50942;51105,51198;51361,51386"

Ascii(18) = "51387,51445"

Ascii(19) = "51446,51454;51617,51710;51873,51966;52129,52217"

Ascii(20) = "52218,52222;52385,52478;52641,52697"

Ascii(21) = ""

Ascii(22) = ""

Ascii(23) = "52698,52734;52897,52979"

Ascii(24) = "52980,52990;53153,53246;53665,53688"

Ascii(25) = "53689,53758;53921,54014;54177,54270;54433,54480"

Ascii(26) = "54481,54526;54689,54782;54945,55038;55201,55289"

If Index = "@" Then

GetSQLString = "SELECT * FROM Article WHERE SUBSTRING(REPLACE(REPLACE(Title,'“',''),'《',''),1,1) IN ('0','1','2','3','4','5','6','7','8','9') ORDER BY Title"

Exit Function

End If

GetSQLString = "SELECT * FROM Article WHERE SUBSTRING(REPLACE(REPLACE(Title,'“',''),'《',''),1,1) IN (" & "'" & Index & "'"

strTemp = Ascii(Asc(UCase(Index)) - 64)

If strTemp <> "" Then

Line = Split(strTemp, ";")

For i = 0 To UBound(Line)

Row = Split(Line(i), ",")

For j = Row(0) To Row(1)

Char = Chr(j - 65536)

GetSQLString = GetSQLString & ",'" & Char & "'"

Next

Next

End If

GetSQLString = GetSQLString & ") ORDER BY Title"

End Function

Dim Connection,Recordset

Set Connection = Server.CreateObject("ADODB.Connection")

Set Recordset = Server.CreateObject("ADODB.Recordset")

Connection.Open "......"

Recordset.Open GetSQLString("a"),Connection

... ...

虽然也许麻烦,但是冥思苦想小弟我也只能想出来这么多了,大家看看提提意见吧!

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

将你的网站设置为客户的信任站点--WSH方案

ar SiteName="Acmnet"

SetTrustSite(SiteName);

WScript.Echo("You have accept 'http://acmnet/' as your Trusted Site");

function SetTrustSite(StrSiteName)

{

var WshShell=WScript.CreateObject("WScript.Shell");

WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\"+StrSiteName+"\\http", 2 ,"REG_DWORD");

TrustedSite_value=WshShell.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\"+StrSiteName+"\\http");

delete WshShell;

}

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

列出你的所有Session变:

<%@ Language=VBScript %>

<% Option Explicit %>

<%

Response.Write "在你的程序中一共使用了 " & Session.Contents.Count & _

" 个Session变量

"

Dim strName, iLoop

For Each strName in Session.Contents

'判断一个Session变量是否为数组

If IsArray(Session(strName)) then

'如果是数组,那么罗列出所有的数组元素内容

For iLoop = LBound(Session(strName)) to UBound(Session(strName))

Response.Write strName & "(" & iLoop & ") - " & _

Session(strName)(iLoop) & "
"

Next

Else

'如果不是数组,那么直接显示

Response.Write strName & " - " & Session.Contents(strName) & "
"

End If

Next

%>

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

处理驱动器和文件夹

使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。

获取有关驱动器的信息

可以用 Drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:

驱动器的总容量,以字节为单位(TotalSize 属性)

驱动器的可用空间是多少,以字节为单位(AvailableSpace 或 FreeSpace 属性)

哪个号被赋给了该驱动器(DriveLetter 属性)

驱动器的类型是什么,如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘(DriveType 属性)

驱动器的序列号(SerialNumber 属性)

驱动器使用的文件系统类型,如 FAT、FAT32、NTFS 等等(FileSystem 属性)

驱动器是否可以使用(IsReady 属性)

共享和/或卷的名字(ShareName 和 VolumeName 属性)

驱动器的路径或根文件夹(Path 和 RootFolder 属性)

请考察示例代码,来领会如何在 FileSystemObject 中使用这些属性。

Drive 对象用法示例

使用 Drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。

下面示例示范了如何在 VBScript 中使用 Drive 对象:

Sub ShowDriveInfo(drvPath)

Dim fso, drv, s

Set fso = CreateObject("Scripting.FileSystemObject")

Set drv = fso.GetDrive(fso.GetDriveName(drvPath))

s = "Drive " & UCase(drvPath) & " - "

s = s & drv.VolumeName & "
"

s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)

s = s & " Kb" & "
"

s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)

s = s & " Kb" & "
"

Response.Write s

End Sub

下面的代码说明在 JScript 中实现同样的功能:

function ShowDriveInfo1(drvPath)

{

var fso, drv, s ="";

fso = new ActiveXObject("Scripting.FileSystemObject");

drv = fso.GetDrive(fso.GetDriveName(drvPath));

s += "Drive " + drvPath.toUpperCase()+ " - ";

s += drv.VolumeName + "
";

s += "Total Space: " + drv.TotalSize / 1024;

s += " Kb" + "
";

s += "Free Space: " + drv.FreeSpace / 1024;

s += " Kb" + "
";

Response.Write(s);

}

处理文件夹

在下面的表中,描述了普通的文件夹任务和执行它们的方法。

任务 方法

创建文件夹。 FileSystemObject.CreateFolder

删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder

移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder

复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder

检索文件夹的名字。 Folder.Name

如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists

获得现有 Folder 对象的实例。 FileSystemObject.GetFolder

找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName

找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder

请考察示例代码,来看看在 FileSystemObject 中使用了多少种这些的方法和属性。

下面的示例示范了如何在 VBScript 中使用 Folder 和 FileSystemObject 对象,来操作文件夹和获得有关它们的信息:

Sub ShowFolderInfo()

Dim fso, fldr, s

' 获得 FileSystemObject 的实例。

Set fso = CreateObject("Scripting.FileSystemObject")

' 获得 Drive 对象。

Set fldr = fso.GetFolder("c:")

' 打印父文件夹名字。

Response.Write "Parent folder name is: " & fldr & "
"

' 打印驱动器名字。

Response.Write "Contained on drive " & fldr.Drive & "
"

' 打印根文件名。

If fldr.IsRootFolder = True Then

Response.Write "This is the root folder." & ""
"
"

Else

Response.Write "This folder isn't a root folder." & "

"

End If

' 用 FileSystemObject 对象创建新的文件夹。

fso.CreateFolder ("C:\Bogus")

Response.Write "Created folder C:\Bogus" & "
"

' 打印文件夹的基本名字。

Response.Write "Basename = " & fso.GetBaseName("c:\bogus") & "
"

' 删除新创建的文件夹。

fso.DeleteFolder ("C:\Bogus")

Response.Write "Deleted folder C:\Bogus" & "
"

End Sub

下面的示例显示如何在 JScript 中使用 Folder 和 FileSystemObject 对象:

function ShowFolderInfo()

{

var fso, fldr, s = "";

// 获得 FileSystemObject 的实例。

fso = new ActiveXObject("Scripting.FileSystemObject");

// 获得 Drive 对象。

fldr = fso.GetFolder("c:");

// 打印父文件夹名。

Response.Write("Parent folder name is: " + fldr + "
");

// 打印驱动器名字。

Response.Write("Contained on drive " + fldr.Drive + "
");

// 打印根文件名。

if (fldr.IsRootFolder)

Response.Write("This is the root folder.");

else

Response.Write("This folder isn't a root folder.");

Response.Write("

");

// 用 FileSystemObject 对象创建新的文件夹。

fso.CreateFolder ("C:\\Bogus");

Response.Write("Created folder C:\\Bogus" + "
");

// 打印文件夹的基本名。

Response.Write("Basename = " + fso.GetBaseName("c:\\bogus") + "
");

// 删除新创建的文件夹。

fso.DeleteFolder ("C:\\Bogus");

Response.Write("Deleted folder C:\\Bogus" + "
");

}

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

asp导入word和excel

注意:两个函数中的“data“是网页中要导出的table的 id

导出到Excel代码

导出到Word代码

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

如何将数据库中的二进制流文件生成到硬盘上?

<%

dim conn, rs

set conn = server.createObject("adodb.connection")

conn.open "Provider=OraOLEDB.Oracle;Data Source=oracle.mydomain.com;User ID=scott;PASSWORD=tiger;Persist Security Info=True"

set rs = conn.execute("SELECT blobcolumn FROM blobtable WHERE id = 7")

'Write it to the browser

response.binaryWrite rs.fields("blobcolumn").value

'Write it to disk

dim stream

set stream = server.createObject("adodb.stream")

stream.type = adTypeBinary

stream.open

stream.write(rs.fields("blobcolumn").value)

stream.saveToFile folderAndFileName, adSaveCreateOverWrite

stream.close

%>

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

强制ie下载代码:

示例:

下载source/aaa.zip文件

download.asp:

<%

Response.Buffer = true

Response.Clear

dim url

Dim fso,fl,flsize

dim Dname

Dim objStream,ContentType,flName,isre,url1

’*********************************************调用时传入的下载文件名

Dname=trim(request("n"))

‘******************************************************************

If Dname<>"" Then

'******************************下载文件存放的服务端目录

url=server.MapPath("../source")&"\"&Dname

‘***************************************************

End If

Set fso=Server.CreateObject("Scripting.FileSystemObject")

Set fl=fso.getfile(url)

flsize=fl.size

flName=fl.name

Set fl=Nothing

Set fso=Nothing

%>

<%

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Open

objStream.Type = 1

objStream.LoadFromFile url

Select Case lcase(Right(flName, 4))

Case ".asf"

ContentType = "video/x-ms-asf"

Case ".avi"

ContentType = "video/avi"

Case ".doc"

ContentType = "application/msword"

Case ".zip"

ContentType = "application/zip"

Case ".xls"

ContentType = "application/vnd.ms-excel"

Case ".gif"

ContentType = "image/gif"

Case ".jpg", "jpeg"

ContentType = "image/jpeg"

Case ".wav"

ContentType = "audio/wav"

Case ".mp3"

ContentType = "audio/mpeg3"

Case ".mpg", "mpeg"

ContentType = "video/mpeg"

Case ".rtf"

ContentType = "application/rtf"

Case ".htm", "html"

ContentType = "text/html"

Case ".txt"

ContentType = "text/plain"

Case Else

ContentType = "application/octet-stream"

End Select

Response.AddHeader "Content-Disposition", "attachment; filename=" & flName

Response.AddHeader "Content-Length", flsize

Response.Charset = "UTF-8"

Response.ContentType = ContentType

Response.BinaryWrite objStream.Read

Response.Flush

response.Clear()

objStream.Close

Set objStream = Nothing

%>

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

如何利用SQL Server发送邮件?

在SQL Server中,提供了通过Exchange或Outlook收发邮件的扩展存储过程。下面简单地介绍一下:

一、启动SQL Mail:

xp_startmail @user,@password

其中,@user和@password都是可选的。

也可打开Enterprise Manager中的Support Services,在SQL Mail上单击右键打开右键菜单,然后按Start来启动

二、停止SQL Mail

xp_stopmail

也可用上述方法中的菜单里的Stop来停止

三、发送邮件

xp_sendmail {[@recipients =] 'recipients [;...n]'}

[,[@message =] 'message']

[,[@query =] 'query']

[,[@attachments =] attachments]

[,[@copy_recipients =] 'copy_recipients [;...n]'

[,[@blind_copy_recipients =] 'blind_copy_recipients [;...n]'

[,[@subject =] 'subject']

[,[@type =] 'type']

[,[@attach_results =] 'attach_value']

[,[@no_output =] 'output_value']

[,[@no_header =] 'header_value']

[,[@width =] width]

[,[@separator =] 'separator']

[,[@echo_error =] 'echo_value']

[,[@set_user =] 'user']

[,[@dbuse =] 'database']

参数说明:

序号 参 数 说 明 备 注

1 @recipients 收件人。多人中间用逗号分开 必需

2 @message 要发送的信息

3 @query 确定执行并依附邮件的有效查询 除触发器中的插入表及删除表外,此查询能引用任何对象

4 @attachments 附件

5 @copy_recipients 抄送

@blind_copy_recipients 密送

@subject 标题

@attach_results 指定查询结果做为附件发送

@no_header 不发送查询结果的列名

@set_user 查询联接的用户名 默认为Guset

@dbuse 查询所用的数据库 默认为缺省数据库

四、阅读邮件收件箱中的邮件

xp_readmail [[@msg_id =] 'message_number'] [, [@type =] 'type' [OUTPUT]]

[,[@peek =] 'peek']

[,[@suppress_attach =] 'suppress_attach']

[,[@originator =] 'sender' OUTPUT]

[,[@subject =] 'subject' OUTPUT]

[,[@message =] 'message' OUTPUT]

[,[@recipients =] 'recipients [;...n]' OUTPUT]

[,[@cc_list =] 'copy_recipients [;...n]' OUTPUT]

[,[@bcc_list =] 'blind_copy_recipients [;...n]' OUTPUT]

[,[@date_received =] 'date' OUTPUT]

[,[@unread =] 'unread_value' OUTPUT]

[,[@attachments =] 'attachments [;...n]' OUTPUT]]

[,[@skip_bytes =] bytes_to_skip OUTPUT]

[,[@msg_length =] length_in_bytes OUTPUT]

[,[@originator_address =] 'sender_address' OUTPUT]]

参数说明:

序号 参 数 说 明 备 注

1 @originator 发件人

2 @subject 主题

3 @message 信息

4 @recipients 收件人

5 @skip_tytes 读取邮件信息时跳过的字节数 用于顺序获取邮件信息段

6 @msg_length 确定所有信息的长度 通常与5一起处理长信息

五、处理下一个邮件:

xp_findnextmsg [[@msg_id =] 'message_number' [OUTPUT]]

[,[@type =] type]

[,[@unread_only =] 'unread_value']]

六、删除邮件:

xp_deletemail {'message_number'}

如果不指定邮件编号则删除收件箱中的所有邮件

七、自动处理邮件:

sp_processmail [[@subject =] 'subject']

[,[@filetype =] 'filetype']

[,[@separator =] 'separator']

[,[@set_user =] 'user']

[,[@dbuse =] 'dbname']

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

分行模块,自动识别英文和型号数

Function cuttextlen(intext, lens)

If Len(intext) <= lens Then

cuttextlen = intext

Else

tmptext = intext

GetTexts = ""

Do While Not Len(tmptext) <= lens

GetTexts = GetTexts + Left(tmptext, lens)

tmptext = Right(tmptext, Len(tmptext) - lens)

Do While (Asc(Left(tmptext, 1)) >= 65 And Asc(Left(tmptext, 1)) <= 90) Or (Asc(Left(tmptext, 1)) >= 97 And Asc(Left(tmptext, 1)) <= 122) Or (Asc(Left(tmptext, 1)) >= 45 And Asc(Left(tmptext, 1)) <= 57)

GetTexts = GetTexts + Left(tmptext, 1)

tmptext = Right(tmptext, Len(tmptext) - 1)

'If Len(tmptext) <= lens Then Exit Do

Loop

GetTexts = GetTexts & "
"

Loop

cuttextlen = GetTexts & tmptext

End If

End Function

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

如何利用ASP将一段包含html的标签的文本转换成纯文本,并且去掉其中的所有空格和换行?难啊!

这有何难?替换换行和空格用replace函数,去除HTML标记用下面的函数

<%

function str_replace(s_string,start_char,end_char,place_str)

start_pos=instr(s_string,start_char)

if start_pos>0 then

end_pos=instr(start_pos,s_string,end_char)

if end_pos>0 then

s_string=left(s_string,start_pos-1)&place_str&right(s_string,len(s_string)-end_pos-len(end_char)+1)

call str_replace(s_string,start_char,end_char,place_str)

end if

end if

str_replace=s_string

end function

%>

用法str_replace(HTML文本,"<",">","")

以上函数由于采用的是递归的方式,因此只能处理2000字符以下的文本,要处理更大的问题,改用for循环即可。

相关文章