| Perfil de 炎龙无影暗月之光FotosBlogListas | Ayuda |
|
|
19/05/2006 fso在ASP中,FSO的意思是File System Object,即文件系统对象。
我们将要操纵的计算机文件系统,在这里是指位于web服务器之上。所以,确认你对此拥有合适的权限。理想情况下,你可以在自己的机器上建立一个web服务器,这样就能方便地进行测试。如果运行于Windows平台,请试一试微软公司的免费个人Web服务器PWS。 FSO 模型对象 你可以使用上面的对象做计算机上的任何事情,也包括破坏活动 ;-( 所以,请小心使用FSO。在web环境中,存储信息是非常重要的,比如用户信息,日志文件,等等。FSO提供了一个强大且简单的方法高效率地保存数据。在这篇文章里面,着重讨论FileSystemObject和TextStream对象。 FSO由微软公司提供支持,对于非Windows系统,大概不能再使用ASP。 怎么样使用FSO? 为了使用FSO来执行所有的工作,首先要创建对象,代码就象下面这样: < % 这样就建立了FSO并且赋予变量fso,接着就可以使用熟悉的object.method语法来执行文件系统的操作〔查看Visual Basic文档,获取更多的关于对象和对象向导编程的知识〕。在这里,我们可以使用fso.method 或者 fso.property,这些将在下面的例子中看到。 FSO模型位于由微软提供的脚本运行时间DLL文件中,它是scrrun.dll。你可以在任何应用程序中引用这个DLL文件,比如MS Access,Word。 就是说,并非仅仅限制在ASP中应用它。 这里有一个简要的FSO方法列表: FSO方法 如果想了解完整的FSO方法与属性,请查阅微软MSDN。下面来看几个例子。 假设你想创建一个简单的留言簿,你可以建立一个数据库,在其中存储用户的信息。然而,如果并不需要数据库的强大功能,使用FSO来存储信息将节省你的时间和金钱。并且,一些ISP也许限制了web上的数据库应用。 假设你在一个表单中收集了一些用户信息,这里是一个简单表单HTML代码: < html> < form action="formhandler.asp" method="post"> 再看看formhandler.asp中处理表单的代码: < % ' create the fso object 迄今为止,还没有新鲜的东西,无非是获取表单域的值并且赋值到变量。下面出现了有趣的部分 - 写文件: path = "c: emp est.txt" ' open the file ' write the info to the file ' close and clean up 回想一下,OpenTextFile方法返回一个TextStream对象,它是FSO模型中的另外一个对象。TextStream对象揭示了操作文件内容的方法,比如写、读一行、跳过一行。VB常量vbcrlf产生一个换行符。 在OpentextFile的命令参数中定义了TRUE,这就告诉了系统,如果文件不存在,就创建它。如果文件不存在,并且没有定义TRUE参数,就会出错。 现在转到目录c: emp,打开test.txt,你可以看到如下的信息: User's name 当然,这些单词可以被输入在表单中的任何内容所替换。 现在已经有了一些用户信息保存在文件中,就像一个简单的数据库。假设有一个用户想了解所有的访问者,就要从登记的信息中分离出相关部分,因为没有象数据库一样拥有结构化的列。 我们知道,在所创建的文件中,第1行是用户名,第2行是他们的主页,第3行是他们的电子邮件地址。随后登记的用 < % ' open the file 接着,分析每一行,并且格式化数据: do until file.AtEndOfStream ' close and clean up 这里仅仅做了一个非常简单的输出,但是你可以根据情况包含表格或者DHTML表单信息。 如果已经正确地建立并写入了文件,上面的小小循环将合适地列出数据库中的每一个人的信息。ReadLine方法读取1 假设由于某种原因,我们没有正确地形成文件,如果一个用户只有2行信息而不是3行,那么就会产生一些错误。我们 Server object error 'ASP 0177 : 800a003e' 所以,一定要添加一些错误处理代码,以防文件中插入了多余的行或者少了必要的行信息。 上面讨论了基本知识,然后说说权限许可的问题。FSO以创建它的用户帐户权限运行,换言之,如果有人从Internet上访问你的页面,那么这个internet帐户就创建FSO。如果以administrator的身份登录计算机,并且登录页面,那么 administrator帐户就创建了FSO。这是非常重要的,因为一定的帐户拥有一定的权限,并且FSO需要一些权限从而能完整的 执行功能。 internet帐户(IUSER_MachineName,MachineName是服务器的名字)一般只拥有读权限,这意味着用户将不能写入留 首先,也是很困难的,是要求用户在填写留言簿前登录到服务器。然而,留言簿的要点是从匿名用户处收集信息,如 第2个方法是创建一个目录或者文件,IUSER_MachineName用户对此有写权限。这样做可能开放了一些潜在的安全漏 建立搜索引擎的关键是递归。主要地,编写一段代码搜索目录下的文件,然后对所有的目录循环执行同样的代码。因 下面来创建搜索页面。假设已经建立了一个HTML表单,用户在其中输入一个搜索字符串。 Dim objFolder strSearchText = Request.Form("SearchText") < -- The search string Search objFolder 上面的代码简单地初始化变量,Search函数执行搜索功能,描述如下:
Function Search(objFolder) Dim objSubFolder
'loop through every file in the current For Each objFile in objFolder.Files Set objTextStream = objFSO.OpenTextFile(objFile.Path,1) < -- For Reading
'read the file's contents into a strFileContents = objTextStream.ReadAll
'if the search string is in the file, then ' to the file If InStr(1, strFileContents, strSearchText, 1) then Response.Write "< A HREF=""/" & objFile.Name & _ """>" & objFile.Name & "< /A>< BR>"
bolFileFound = True End If
objTextStream.Close
Next
'Here's the recursion part - for each ' subfolder in this directory, run the Search function again For Each objSubFolder in objFolder.SubFolders Search objSubFolder Next End Function 为了能打开文件,FSO需要实际的文件路径,而不是web路径。比如,是c:inetpubwwwroot empindex.html, 而不是 上面的代码将在你指定的初始目录下的文件夹的每一个子目录中执行,在这里,初始目录是指web根目录“/”。然后 注意,随着文件和子目录数量的增加,搜索花费的时间也将增加。如果需要繁重的搜索工作,建议你采取其他的方 到此,你对FSO可能已经有了很好的体会。让我们再深入研究一步,来解决更复杂的难题。 首先,你可能希望对文件改名。为了跟踪所有的文档,你将要重新命名它们以便唯一,这样就可以被系统容易地区 < % ' open the old file ' check for and/or create folder ' create and write new file ' delete the old file FSO能力的不足在这里却成了优势,我们可以一次执行2步。首先,打开文件并读入文件的内容。假设这里要创建一个 这2步就是:对文件改名,然后移动到一个更合适的目录下。注意,在这里还可以对文件进行更多地操作,比如在写 另外一个限制是对于文件长度的问题。当立刻读写一些内容时,所有的信息都存储在内存中 - 内容越多,消耗的内存就越大。这将使每个工作都变得慢起来。所以,如果需要操作非常大的文件,或者大量的小文件时,考虑将文件分割成小块,并且经常的清除内存。将应用程序融入进COM对象组件,也能大大地提高程序的速度。 同样,你也不能使用FSO来管理权限以及文件、文件夹的属性,执行安全加密的一个很好方法就是将前面提到的留言簿文件设置为只读,在需要时再设置为可写,然后再修改回来。这个方法经常在CGI和Perl使用,但是很不幸,还没有令人满意的方法来用FSO实现。 还能用FSO做什么? 在FSO中还有许多很棒的功能,但许多人没有意识到。这些功能常常是在你感到做某些事情很难后才发现的,这时你经常要感叹到:要是我早知道这个方法就好了! 下面列举一下这些不常用但是却非常酷的功能: 很少被了解的FSO功能 使用上面的功能时,最好建立好出错处理的代码。因为如果需要的参数不存在,将会产生麻烦的信息。 ASP生成静态网页的方法随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。 下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成ndex1.htm,index2.htm,index3.htm存在根目录下面: <% dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp Html_Temp="<UL>" For i=1 To 3 Html_Temp = Html_Temp&amp;"<LI>" Item_Classid = i FileName = "Index"&amp;Item_Classid&amp;".htm" FilePath = Server.MapPath("/")&amp;"\"&amp;FileName Html_Temp = Html_Temp&amp;FilePath&amp;"</LI>" Do_Url = "http://" Do_Url = Do_Url&amp;Request.ServerVariables("SERVER_NAME")&amp;"/main/index.asp" Do_Url = Do_Url&amp;"?Item_Classid="&amp;Item_Classid strUrl = Do_Url dim objXmlHttp set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP") objXmlHttp.open "GET",strUrl,false objXmlHttp.send() Dim binFileData binFileData = objXmlHttp.responseBody Dim objAdoStream set objAdoStream = Server.CreateObject("ADODB.Stream") objAdoStream.Type = 1 objAdoStream.Open() objAdoStream.Write(binFileData) objAdoStream.SaveToFile FilePath,2 objAdoStream.Close() Next Html_Temp = Html_Temp&amp;"<UL>" %> <% Response.Write ( "成功生成文件:" ) Response.Write ( "<BR>" ) Response.Write Html_Temp %> PHP生成静态页 看到很多朋友在各个地方发帖问PHP生成静态文章系统的方法,以前曾做过这样一个系统,遂谈些看法,以供各位参考。好了,我们先回顾一些基本的概念。 一,PHP脚本与动态页面。 PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理。无论以何种方式,它的基本原理是这样的。由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的PHP解析器对脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器。由此不难看出,在页面发送到浏览器后,PHP就不存在了,已被转化解析为HTML语句。客户请求为一动态文件,事实上并没有真正的文件存在在那里,是PHP解析而成相对应的页面,然后发送回浏览器。这种页面处理方式被称为“动态页面”。 二,静态页面。 静态页面是指在服务器端确实存在的仅含HTML以及JS,CSS等客户端运行脚本的页面。它的处理方式是。由客户端提出请求,请求某一页面 ----> WEB服务器确认并载入某一页面 ----> WEB服务器将该页面以包的形式传递回浏览器。由这一过程,我们对比一下动态页面,即可方现。动态页面需由WEB服务器的PHP解析器进行解析,而且通常还需连接数据库,进行数据库存取操作,然后才能形成HTML语言信息包;而静态页面,无须解析,无须连接数据库,直接发送,可大大减轻服务器压力,提高服务器负载能力,大幅提供页面打开速度和网站整体打开速度。但其缺点是,不能动态地对请求进行处理,服务器上必须确实存在该文件。 三,模板及模板解析。 模板即尚未填充内容html文件。例如: temp.html <HTML> <TITLE>{ title }</TITLE> <BODY> this is a { file } file's templets </BODY> </HTML> PHP处理: templetest.php <?php $title = "落伍测试模板"; $file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{ file }",$file,$content); $content .= str_replace ("{ title }",$title,$content); echo $content; ?> 模板解析处理,即将经PHP脚本解析处理后得出的结果填充(content)进模板的处理过程。通常借助于模板类。目前较流行的模板解析类有phplib,smarty,fastsmarty等等。模板解析处理的原理通常为替换。也有些程序员习惯将判断,循环等处理放进模板文件中,用解析类处理,典型应用为block概念,简单来说即为一个循环处理。由PHP脚本指定循环次数,如何循环代入等,再由模板解析类具体实施这些操作。 好了,对比过静态页面与动态页面各自的优劣,现在我们就来说说,如何用PHP生成静态文件。 PHP生成静态页面并不是指PHP的动态解析,输出HTML页面,而是指用PHP创建HTML页面。同时因为HTML的不可写性,我们创建的HTML若有修改,则需删掉重新生成即可。(当然你也可以选择用正则进行修改,但个人认为那样做倒不如删掉重新生成来得快捷,有些得不偿失。) 言归正传。用过PHP文件操作函数的PHP FANS知道,PHP中有一个文件操作函数fopen,即打开文件。若文件不存在,则尝试创建。这即是PHP可以用来创建HTML文件的理论基础。只要用来存放HTML文件的文件夹有写权限(即权限定义0777),即可创建文件。(针对UNIX系统而言,Win系统无须考虑。)仍以上例为例,若我们修改最后一句,并指定在test目录下生成一个名为test.html的静态文件: <?php $title = "落伍测试模板"; $file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{file}",$file,$content); $content .= str_replace ("{title}",$title,$content); // echo $content; $filename = "test/test.html"; $handle = fopen ($filename,"w"); //打开文件指针,创建文件 /* 检查文件是否被创建且可写 */ if (!is_writable ($filename)){ die ("文件:".$filename."不可写,请检查其属性后重试!"); } if (!fwrite ($handle,$content)){ //将信息写入文件 die ("生成文件".$filename."失败!"); } fclose ($handle); //关闭指针 die ("创建文件".$filename."成功!"); ?> 实际应用中常见问题解决方案参考: 一,文章列表问题: 在数据库中创建字段,记录文件名,每生成一个文件,将自动生成的文件名存入数据库,对于推荐文章,只需指向存放静态文件的指定文件夹中的该页面即可。利用PHP操作处理文章列表,存为字符串,生成页面时替换此字符串即可。如,在页面中放置文章列表的表格加入标记{articletable},而在PHP处理文件中: <?php $title = "落伍测试模板"; $file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{file}",$file,$content); $content .= str_replace ("{title}",$title,$content); // 生成列表开始 $list = ''; $sql = "select id,title,filename from article"; $query = mysql_query ($sql); while ($result = mysql_fetch_array ($query)){ $list .= '<a href='.$root.$result['filename'].' target=_blank>'.$result['title'].'</a><br>'; } $content .= str_replace ("{articletable}",$list,$content); //生成列表结束 // echo $content; $filename = "test/test.html"; $handle = fopen ($filename,"w"); //打开文件指针,创建文件 /* 检查文件是否被创建且可写 */ if (!is_writable ($filename)){ die ("文件:".$filename."不可写,请检查其属性后重试!"); } if (!fwrite ($handle,$content)){ //将信息写入文件 die ("生成文件".$filename."失败!"); } fclose ($handle); //关闭指针 die ("创建文件".$filename."成功!"); ?> 二,分页问题。 如我们指定分页时,每页20篇。某子频道列表内文章经数据库查询为45条,则,首先我们通过查询得到如下参数:1,总页数;2,每页篇数。第二步,for ($i = 0; $i < allpages; $i++),页面元素获取,分析,文章生成,都在此循环中执行。不同的是,die ("创建文件".$filename."成功!";这句去掉,放到循环后的显示,因为该语句将中止程序执行。例: <?php $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $onepage = '20'; $sql = "select id from article where channel='$channelid'"; $query = mysql_query ($sql); $num = mysql_num_rows ($query); $allpages = ceil ($num / $onepage); for ($i = 0;$i<$allpages; $i++){ if ($i == 0){ $indexpath = "index.html"; } else { $indexpath = "index_".$i."html"; } $start = $i * $onepage; $list = ''; $sql_for_page = "select name,filename,title from article where channel='$channelid' limit $start,$onepage"; $query_for_page = mysql_query ($sql_for_page); while ($result = $query_for_page){ $list .= '<a href='.$root.$result['filename'].' target=_blank>'.$title.'</a><br>'; } $content = str_replace ("{articletable}",$list,$content); if (is_file ($indexpath)){ @unlink ($indexpath); //若文件已存在,则删除 } $handle = fopen ($indexpath,"w"); //打开文件指针,创建文件 /* 检查文件是否被创建且可写 */ if (!is_writable ($indexpath)){ echo "文件:".$indexpath."不可写,请检查其属性后重试!"; //修改为echo } if (!fwrite ($handle,$content)){ //将信息写入文件 echo "生成文件".$indexpath."失败!"; //修改为echo } fclose ($handle); //关闭指针 } fclose ($fp); die ("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!"); ?> 大致思路如此,其中如其它数据生成,数据输入输出检查,分页内容指向等可酌情在页面中加入。 在实际文章系统处理过程当中,还有许多问题有待考虑,与动态页面不同之处,需注意的地方还有很多。但大致思路即是如此,其它方面可举一反三而得。 Asp.NET 生成静态页 环境:Microsoft .NET Framework SDK v1.1 OS:Windows Server 2003 中文版 ASP.Net生成静态HTML页 在Asp中实现的生成静态页用到的FileSystemObject对象! 在.Net中涉及此类操作的是System.IO 以下是程序代码 注:此代码非原创!参考别人代码 //生成HTML页 public static bool WriteFile(string strText,string strContent,string strAuthor) { string path = HttpContext.Current.Server.MapPath("/news/"); Encoding code = Encoding.GetEncoding("gb2312"); // 读取模板文件 string temp = HttpContext.Current.Server.MapPath("/news/text.html"); StreamReader sr=null; StreamWriter sw=null; string str=""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); // 读取文件 } catch(Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); sr.Close(); } string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html"; // 替换内容 // 这时,模板文件已经读入到名称为str的变量中了 str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle str = str.Replace("biaoti",strText); str = str.Replace("content",strContent); str = str.Replace("author",strAuthor); // 写文件 try { sw = new StreamWriter(path + htmlfilename , false, code); sw.Write(str); sw.Flush(); } catch(Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } return true; 此函数放在Conn.CS基类中了 在添加新闻的代码中引用 注:工程名为Hover if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString))) { Response.Write("添加成功"); } else { Response.Write("生成HTML出错!"); } 模板页Text.html代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>ShowArticle</title> <body> biaoti <br> content<br> author </body> </HTML> biaoti <br> content<br> author </body> </HTML> 非摸板生成静态页 目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动原来的页面就可以轻松完成一个生成html的新闻系统了。^_^ 由于代码比较短,这里就不进行注释了 <% '当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题 '注意:本文件一定要放在filename指向的文件的同一目录下 dim hughchiu_rtcode Function get_exe_code(filename) dim execode dim tmp_str Dim re,re1,content,fso,f,aspStart,aspEnd dim ms,m execode = "" set fso=CreateObject("Scripting.FileSystemObject") set f=fso.OpenTextFile(server.mappath(filename)) content=f.ReadAll f.close set f=nothing set fso=nothing set re = new regexp re.ignorecase = true re.global = true re.pattern = "\<\%\@[^\%]+\%\>" content = re.replace(content,"") re.global = false re.pattern = "\<\!\-\-\s*\#include\s*file\s*=\s*\""([^\""]+)\""\s*\-\-\>" do set ms = re.execute(content) if ms.count<>0 then set m = ms(0) tmp_str = get_exe_code(m.submatches(0)) content = re.replace(content, tmp_str) else exit do end if loop set m = nothing set ms = nothing re.pattern="^\s*=" aspEnd=1 aspStart=inStr(aspEnd,content,"<%")+2 set re1=new RegExp re1.ignorecase = true re1.global = false re1.pattern = "response\.Write(.+)" do while aspStart>aspEnd+1 execode = execode&amp;vbcrlf&amp;" hughchiu_rtcode = hughchiu_rtcode&amp;"""&amp;replace( replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """&amp;vbcrlf&amp;""")&amp;""""&amp;vbcrlf aspEnd=inStr(aspStart,content,"%\>")+2 tmp_str = Mid(content,aspStart,aspEnd-aspStart-2) do set ms = re1.execute(tmp_str) if ms.count<>0 then set m = ms(0) tmp_str = re1.replace(tmp_str, " hughchiu_rtcode = hughchiu_rtcode&amp;"&amp;m.submatches(0)) else exit do end if loop set m = nothing set ms = nothing execode = execode&amp; re.replace(tmp_str,"hughchiu_rtcode = hughchiu_rtcode&amp;") aspStart=inStr(aspEnd,content,"<%")+2 loop set re1 = nothing set re=nothing execode = execode&amp;vbcrlf&amp;" hughchiu_rtcode = hughchiu_rtcode&amp;"""&amp;replace( replace(Mid(content,aspEnd), """", """"""), vbcrlf, """&amp;vbcrlf&amp;""" )&amp;""""&amp;vbcrlf get_exe_code = "<%"&amp;execode&amp;"%\>" End Function function asp2html(filename) dim code code = replace( replace( replace( get_exe_code(filename), "hughchiu_rtcode = hughchiu_rtcode&amp;"""""&amp;vbcrlf, "" ), "<%", "" ), "%\>", "" ) 'response.Write(code) execute(code) 'response.Write( hughchiu_rtcode ) asp2html = hughchiu_rtcode end function %> 使用范例: set fso=CreateObject("Scripting.FileSystemObject")<br/>set f=fso.CreateTextFile( server.mappath( "youpage.htm" ), true )<br/>f.WriteLine( asp2html("youpage.asp") )<br/>f.close<br/>set f = nothing<br/>set fso = nothing 可见,虽然是新方法还是需要fso的支持 30/04/2006 工作Microsoft VBScript语法错误(0x800A03E9)-->内存不足 Microsoft VBScript 运行时错误(0x800A0047)-->磁盘没有准备好 94 800A005E 非法使用 Null 322 800A0142 不能建立所需临时文件 424 800A01A8 需要对象 429 800A01AD ActiveX 部件无法创建对象 430 800A01AE 类不支持自动化 432 800A01B0 在自动化操作中未找到文件名或类名 438 800A01B6 对象不支持该属性或方法 440 800A01B8 Automation错误 445 800A01BD 对象不支持此操作 446 800A01BE 对象不支持指定的参数 447 800A01BF 对象不支持当前的区域设置 448 800A01C0 未找到命名参数 449 800A01C1 参数不可选 450 800A01C2 错误的参数个数或无效的参数属性值 451 800A01C3 对象不是一个集合 453 800A01C5 指定的dll函数未找到 455 800A01C7 代码源锁错误 457 800A01C9 这个键已经是本集合的一个元素关联 458 800A01CA 变量使用了一个 VBScript 中不支持的自动化(Automation)类型 462 800A01CE 远程服务器不存在或不能访问 481 800A01E1 无效图片 500 800A01F4 变量未定义 501 800A01F5 违法的分配 502 800A01F6 脚本对象不安全 503 800A01F7 对象不能安全初始化 504 800A01F8 对象不能安全创建 505 800A01F9 无效的或不合格的引用 506 800A01FA 类未被定义 507 800A01FB 发生异常 5016 800A1398 需要正则表达式对象 5017 800A1399 正则表达式中的语法错误 5018 800A139A 错误的数量词 5019 800A139B 在正则表达式中需要 ']' 5020 800A139C 在正则表达式中需要 ')' 5021 800A139D 字符集越界 32811 800A802B 元素未找到 ************************************************************** vbscript错误代码及对应解释大全 VBScript 语法错误 如果 VBScript 语句结构违反了一个或多个 VBScript 脚本语言语法规则,就会产生 VBScript 语法错误。 错误通常在执行程序前,编译程序时产生。 以下是53个语法错误: 错误编号 描述 十进制 十六进制 说明 1001 800A03E9 内存不足 1002 800A03EA 语法错误 1003 800A03EB 缺少“:” 1005 800A03ED 需要 '(' 1006 800A03EE 需要 ')' 1007 800A03EF 缺少“]” 1010 800A03F2 需要标识符 1011 800A03F3 需要 '=' 1012 800A03F4 需要 'If' 1013 800A03F5 需要 'To' 1014 800A03F6 需要 'End' 1015 800A03F7 需要 'Function' 1016 800A03F8 需要 'Sub' 1017 800A03F9 需要 'Then' 1018 800A03FA 需要 'Wend' 1019 800A03FB 需要 'Loop' 1020 800A03FC 需要 'Next' 1021 800A03FD 需要 'Case' 1022 800A03FE 需要 'Select' 1023 800A03FF 需要表达式 1024 800A0400 需要语句 1025 800A0401 需要语句的结束 1026 800A0402 需要整数常数 1027 800A0403 需要 'While' 或 'Until' 1028 800A0404 需要 'While,'、 'Until,' 或语句未结束 1029 800A0405 需要 'With' 1030 800A0406 标识符太长 1031 800A0407 无效的数 1032 800A0408 无效的字符 1033 800A0409 未结束的串常量 1034 800A040A 未结束的注释 1037 800A040D 无效使用关键字 'Me' 1038 800A040E 'loop' 没有 'do' 1039 800A040F 无效 'exit' 语句 1040 800A0410 无效 'for' 循环控制变量 1041 800A0411 名称重定义 1042 800A0412 必须为行的第一个语句 1043 800A0413 不能赋给非Byval参数 1044 800A0414 调用 Sub 时不能使用圆括号 1045 800A0415 需要文字常数 1046 800A0416 需要 'In' 1047 800A0417 需要 'Class' 1048 800A0418 必须在一个类的内部定义 1049 800A0419 在属性声明中需要 Let , Set 或 Get 1050 800A041A 需要 'Property' 1051 800A041B 参数数目必须与属性说明一致 1052 800A041C 在类中不能有多个缺省的属性/方法 1053 800A041D 类初始化或终止不能带参数 1054 800A041E Property Let 或 Set 至少应该有一个参数 1055 800A041F 不需要的 'Next' 1056 800A0420 只能在 ‘Property’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default ’ 1057 800A0421 说明 'Default' 必须同时说明 'Public' " 1058 800A0422 只能在 Property Get 中指定 'Default'92 800A005C For 循环未初始化 94 800A005E 非法使用 Null 322 800A0142 不能建立所需临时文件 424 800A01A8 需要对象 429 800A01AD ActiveX 部件无法创建对象 430 800A01AE 类不支持自动化 432 800A01B0 在自动化操作中未找到文件名或类名 438 800A01B6 对象不支持该属性或方法 440 800A01B8 Automation错误 445 800A01BD 对象不支持此操作 446 800A01BE 对象不支持指定的参数 447 800A01BF 对象不支持当前的区域设置 448 800A01C0 未找到命名参数 449 800A01C1 参数不可选 450 800A01C2 错误的参数个数或无效的参数属性值 451 800A01C3 对象不是一个集合 453 800A01C5 指定的dll函数未找到 455 800A01C7 代码源锁错误 457 800A01C9 这个键已经是本集合的一个元素关联 458 800A01CA 变量使用了一个 VBScript 中不支持的自动化(Automation)类型 462 800A01CE 远程服务器不存在或不能访问 481 800A01E1 无效图片 500 800A01F4 变量未定义 501 800A01F5 违法的分配 502 800A01F6 脚本对象不安全 503 800A01F7 对象不能安全初始化 504 800A01F8 对象不能安全创建 505 800A01F9 无效的或不合格的引用 506 800A01FA 类未被定义 507 800A01FB 发生异常 5016 800A1398 需要正则表达式对象 5017 800A1399 正则表达式中的语法错误 5018 800A139A 错误的数量词 5019 800A139B 在正则表达式中需要 ']' 5020 800A139C 在正则表达式中需要 ')' 5021 800A139D 字符集越界 32811 800A802B 元素未找到 ************************************************************** vbscript错误代码及对应解释大全 VBScript 语法错误 如果 VBScript 语句结构违反了一个或多个 VBScript 脚本语言语法规则,就会产生 VBScript 语法错误。 错误通常在执行程序前,编译程序时产生。 以下是53个语法错误: 错误编号 描述 十进制 十六进制 说明 1001 800A03E9 内存不足 1002 800A03EA 语法错误 1003 800A03EB 缺少“:” 1005 800A03ED 需要 '(' 1006 800A03EE 需要 ')' 1007 800A03EF 缺少“]” 1010 800A03F2 需要标识符 1011 800A03F3 需要 '=' 1012 800A03F4 需要 'If' 1013 800A03F5 需要 'To' 1014 800A03F6 需要 'End' 1015 800A03F7 需要 'Function' 1016 800A03F8 需要 'Sub' 1017 800A03F9 需要 'Then' 1018 800A03FA 需要 'Wend' 1019 800A03FB 需要 'Loop' 1020 800A03FC 需要 'Next' 1021 800A03FD 需要 'Case' 1022 800A03FE 需要 'Select' 1023 800A03FF 需要表达式 1024 800A0400 需要语句 1025 800A0401 需要语句的结束 1026 800A0402 需要整数常数 1027 800A0403 需要 'While' 或 'Until' 1028 800A0404 需要 'While,'、 'Until,' 或语句未结束 1029 800A0405 需要 'With' 1030 800A0406 标识符太长 1031 800A0407 无效的数 1032 800A0408 无效的字符 1033 800A0409 未结束的串常量 1034 800A040A 未结束的注释 1037 800A040D 无效使用关键字 'Me' 1038 800A040E 'loop' 没有 'do' 1039 800A040F 无效 'exit' 语句 1040 800A0410 无效 'for' 循环控制变量 1041 800A0411 名称重定义 1042 800A0412 必须为行的第一个语句 1043 800A0413 不能赋给非Byval参数 1044 800A0414 调用 Sub 时不能使用圆括号 1045 800A0415 需要文字常数 1046 800A0416 需要 'In' 1047 800A0417 需要 'Class' 1048 800A0418 必须在一个类的内部定义 1049 800A0419 在属性声明中需要 Let , Set 或 Get 1050 800A041A 需要 'Property' 1051 800A041B 参数数目必须与属性说明一致 1052 800A041C 在类中不能有多个缺省的属性/方法 1053 800A041D 类初始化或终止不能带参数 1054 800A041E Property Let 或 Set 至少应该有一个参数 1055 800A041F 不需要的 'Next' 1056 800A0420 只能在 ‘Property’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default ’ 1057 800A0421 说明 'Default' 必须同时说明 'Public' " 1058 800A0422 只能在 Property Get 中指定 'Default' |
|
|