com(component object model),一种对象的格式。凡是依照com 的规格所制作出来的组件,皆可以提供功能让其它程序或组件所使用。要使用com 组件,可以使用server 对象的createobject、createobjectfromclsid、createobjectstatic 这三种方法。但是若要建立有使用者接口的com 组件(就是activex 控件,另一种规格的com 组件),则必须使用<object> 标注。createobject 和createobjectstatic 使用方式一样,我们只要传入progid(用来识别com组件的唯一代码,每一个组件皆不同)即可;而createobjectstatic 方法则是传入代表这个com组件的progid(com 组件在操作系统里的名称)。其语法如下所示:
对象变量=server.createobject("progid")
对象变量=server.createobjectstatic("progid")
对象变量=server.createobjectfromclsid("clsid")
下列范例建立一个可以存取档案的filesystemobject 对象,并读取一个文字文件。以下为文字文件内容:
使用档案系统对象来读取存在磁盘的文件
案记得将换行字符改成html 的断行字符程序内容如下所示:
<html>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim content as string
dim objfile as object
fsoa=server.createobject("scripting.filesystemobject")
objfile=fsoa.opentextfile(server.mappath("textfile.txt"),1,false)
if objfile.atendofstream=false then
content=objfile.readall
content=replace(content,chr(13),"<br>")
response.write(content)
end if
end sub
</script>
</html>

上述程序代码中我们建立一个名为fsoa 的filesystemobject 对象,然后用fsoa 对象的opentextfile 方法来开启文字文件。因为opentextfile 的传回值是textstream 对象,所以使用一个对象变量objfile 来接收。接下来判断objfile 对象的atendofstream 属性,若为true 代表已经到达档案的结尾位置,则不做任何动作。接下来使用objfile 对象的readall 方法将档案内容全部读出到字符串变量content 内,然后将content 内的断行字符vbcrlf 转换为html 断行标注<br> 后输出content 的内容。上述程序将createobject 改为createobjectfromclsid方法,并将传入档案对象的clsid「0d43fe01-f093-11cf-8940-00a0c9054228」,最后的结果都是一样的。
<html>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim content as string
dim objfile as object
fsoa=server.createobjectfromclsid("0d43fe01-f093-11cf-8940-00a0c90542
28")
objfile=fsoa.opentextfile(server.mappath("textfile.txt"),1,false)
if objfile.atendofstream=false then
content=objfile.readall
content=replace(content,chr(13),"<br>")
response.write(content)
end if
end sub
</script>
</html>