FSO无效的过程调用或参数问题

fso对象CreateTextFile方法调用时可能会报“无效的过程调用或参数”错误,
在使用ASP生成静态页面时,如果传入的字符串参数编码为utf-8,CreateTextFile方法默认方式有可能会报错的,应该对方法该方法的第三个参数(即编码)设置为true,这时创建的文件以Unicode编码保存,否则是以ASCII编码保存。

对于其他方法报类似于下面的错误,一般是因为传入的参数为null引起的,可在调用前用IsNull做下判断,就可避免。

错误类型:
Microsoft VBScript 运行时错误 (0x800A0005)
无效的过程调用或参数

关于CreateTextFile方法参考:

描述
创建指定文件并返回 TextStream 对象,该对象可用于读或写创建的文件。
语法
object.CreateTextFile(filename[, overwrite[, unicode]])
CreateTextFile 方法的语法有以下部分:

部分 描述
object 必选。应为 FileSystemObject 或 Folder 对象的名称。
filename 必选。字符串表达式,指明要创建的文件。
overwrite 可选。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件,该值为 True;如果不能覆盖文件,则该值为 False 。如果省略该值,则不能覆盖现有文件。
unicode 可选。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。


说明
以下代码举例说明如何使用 CreateTextFile 方法创建并打开文本文件:
Sub CreateAfile
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("c:/testfile.txt", True)
    a.WriteLine("这是一个测试。")
    a.Close
End Sub

对于 filename 已经存在的文件,如果 overwrite 参数为 False,或未提供此参数时,则会出现错误。

另附:

fso OpenTextFile方法说明
打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读、写或追加。

object.OpenTextFile(filename[, iomode[, create[, format]]])
参数
object     必选项。object 应为 FileSystemObject 的名称。
filename      必选项。指明要打开文件的字符串表达式。
iomode      可选项。可以是三个常数之一:ForReading 、 ForWriting 或 ForAppending 。
create      可选项。Boolean 值,指明当指定的 filename 不存在时是否创建新文件。如果创建新文件则值为 True ,如果不创建则为 False 。如果忽略,则不创建新文件。
format      可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。
设置
iomode      参数可以是下列设置中的任一种:

常数                  值      描述
ForReading         1       以只读方式打开文件。不能写这个文件。
ForWriting           2      以写方式打开文件
ForAppending      8      打开文件并从文件末尾开始写。

format 参数可以是下列设置中的任一种:

值 描述
TristateTrue 以 Unicode 格式打开文件。
TristateFalse 以 ASCII 格式打开文件。
TristateUseDefault 使用系统默认值打开文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值