经典ASP中的字节数组

时间:2009-02-19 15:25:26

标签: asp.net asp-classic

如何在经典ASP中编写以下代码?我在包含文件中使用此代码。

 byte[] bytes = new byte[stream.Length] 

如果有人能说出如何在经典ASP中为StreamWriter创建对象,那就太棒了。

  Set sw = Server.CreateObject("System.IO.StreamWriter(stream)")

我不确定引号System.IO.StreamWriter(stream)内的代码。

3 个答案:

答案 0 :(得分:2)

经典ASP只是普通的旧版VBScript。 CreateObject使用classid / progid创建COM对象:CreateObject(“ADODB.Connection”)或CreateObject(“Scripting.FileSystemObject”)。

经典ASP可以使用实际上是.NET对象的COM对象......但前提是它们是专门构建支持COM互操作的。大多数内部.NET内容都没有构建支持COM互操作。

请参阅:http://msdn.microsoft.com/en-us/library/zsfww439.aspx

如果您只需要一个流对象(不一定是.NET System.IO.Stream对象),那么我建议使用ADODB.Stream。

在ASP / VBScript中也不是所有变量都是变体。这使得像字节数组的东西变得棘手。你可以拥有一系列变种没什么大不了的,所有变种都可以是字节......但你不能创建一个只能 保存字节的数组。更糟糕的是......如果一个COM对象返回一个SAFEARRAY字节,那么ASP / VBScript很乐意使用它。

答案 1 :(得分:0)

我认为没有直接转换为StreamWriter。我的经典ASP对象知识是有限的,但IIRC最接近的匹配是FileSystemObject。至于字节数组:

Dim bytes(stream.Length-1) As Byte

答案 2 :(得分:0)

不确定你想做什么,但是......

当我想从vbscript处理字节数组时,就像来自数据库的BLOB一样,我制作了一个可以对字节数组执行操作的通用VB6 COM对象。

http://www.di-mgt.com.au/bytearrays.html