您好,我出现了“Microsoft VBScript 运行时错误 错误 '800a0005' 无效的过程调用或参数: 'Left'”

您好,我出现了“Microsoft VBScript 运行时错误 错误 '800a0005' 无效的过程调用或参数: 'Left'”,第1张

文件路径分隔符不一定是\,也可能是/,遇到这种情况,InStr(1, FullPath, "\")的结果就为0,再减1就变为-1,这样Left函数就会出错了。

可改成:

Function GetFileName(FullPath)

If FullPath <> "" Then

s = Split(Replace(FullPath, "/", "\"), "\")

GetFileName = s(UBound(s))

Else

GetFileName = ""

End If

End Function

或者利用FSO直接获得路径中的文件名:

Set Fso = CreateObject("ScriptingFileSystemObject")

wjm = FsoGetFileName(FullPath)

Set Fso = Nothing

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

问题描述:

对该文本文件多次写入数据时不影响之前写入的数据; 读数据是只读取文本中指定行的部分数据 谢谢

解析:

用FileSystemObject对象创建一个TextStream便实现对文本文件的读写

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

创建指定文件并返回 TextStream 对象,该对象可用于读或写创建的文件。

语法

objectCreateTextFile(filename[, overwrite[, unicode]])

CreateTextFile 方法的语法有以下部分:

object 必选项。应为 FileSystemObject 或 Folder 对象的名称。

filename 必选项。字符串表达式,指明要创建的文件。

overwrite 可选项。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件,该值为 True;如果不能覆盖文件,则该值为 False 。如果省略该值,则不能覆盖现有文件。

unicode 可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。

说明

以下代码举例说明如何使用 CreateTextFile 方法创建并打开文本文件:

Sub CreateAfile

Dim fso, MyFile

Set fso = CreateObject("ScriptingFileSystemObject")

Set MyFile = fsoCreateTextFile("c:\testfiletxt", True)

MyFileWriteLine("这是一个测试。")

MyFileClose

End Sub

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

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

描述

打开指定的文件并返回一个 TextStream 对象,可以读取、写入此对象或将其追加到文件。

语法

objectOpenTextFile(filename[, iomode[, create[, format]]])

OpenTextFile 方法的语法有以下部分:

object 必选项。应为 FileSystemObject 对象的名称。

filename 必选项。字符串表达式,指明要打开的文件名称。

iomode 可选项。输入/输出模式,是下列三个常数之一:ForReading,ForWriting,或 ForAppending。

create 可选项。Boolean 值,指出当指定的 filename 不存在时是否能够创建新文件。允许创建新文件时为 True,否则为 False。默认值为 False。

format 可选项。三个 Tristate 值之一,指出以何种格式打开文件。若忽略此参数,则文件以 ASCII 格式打开。

设置

iomode 参数可为下列设置之一:

ForReading 1 以只读模式打开文件。不能对此文件进行写操作。

ForWriting 2 以只写方式打开文件。不能对此文件进行读操作。

ForAppending 8 打开文件并在文件末尾进行写操作。

format 参数可为下列设置之一:

TristateUseDefault -2 以系统默认格式打开文件。

TristateTrue -1 以 Unicode 格式打开文件。

TristateFalse 0 以 ASCII 格式打开文件。

说明

以下代码举例说明如何使用 OpenTextFile 方法打开写文件:

Sub OpenTextFileTest

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim fso, f

Set fso = CreateObject("ScriptingFileSystemObject")

Set f = fsoOpenTextFile("c:\testfiletxt", For Writing, True)

fWrite "嗨,你好!"

fClose

End Sub

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

另TextStream还有如下方法:

Close 方法

Read 方法

ReadAll 方法

ReadLine 方法

Skip 方法

SkipLine 方法

Write 方法

WriteLine 方法

WriteBlankLines 方法

详细可参阅VBScript 50 帮助文档

<html>

<head>

<title>vbs练习</title>

<script language="vbscript">

sub showOnClick()

dim a

a=documentgetElementById("txt1")value

msgbox "欢迎"&a

end sub

</script>

</head>

<body>

<center>

<p align="center">

请输入名字:

</p>

<input type="text" value="" id="txt1" name="txt1" />

<br>

<input type="button" value="确定" id="but1" onClick="showOnClick()"/>

</center>

</body>

</html>

回答上肯定可以的。大数还是不会的。

假如您收到的邮件附件中有一个看起来是这样的文件:QQ靓号放送txt,您是不是认为它肯定是纯文本文件?我要告诉您,不一定!它的实际文件名可以是QQ靓号放送txt{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}。{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}在注册表里是HTML文件关联的意思。但是存成文件名的时候它并不会显现出来,您看到的就是个txt文件,这个文件实际上等同于QQ靓号放送txthtml。那么直接打开这个文件为什么有危险呢?请看如果这个文件的内容如下:

  您可能以为它会调用记事本来运行,可是如果您双击它,结果它却调用了HTML来运行,并且自动在后台开始格式化d盘,同时显示“Windows is configuring the system。Plase do not interrupt this process。”这样一个对话框来欺骗您。您看随意打开附件中的txt的危险够大了吧?

  欺骗实现原理:当您双击这个伪装起来的txt时候,由于真正文件扩展名是{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B},也就是html文件,于是就会以html文件的形式运行,这是它能运行起来的先决条件。

  文件内容中的第2和第3行是它能够产生破坏作用的关键所在。其中第3行是破坏行动的执行者,在其中可以加载带有破坏性质的命令。那么第2行又是干什么的呢?您可能已经注意到了第2行里的“WSCript”,对!就是它导演了全幕,它是实际行动总指挥。

  WScript全称Windows Scripting Host,它是Win98新加进的功能, 是一种批次语言/自动执行工具——它所对应的程序“WScriptexe”是一个脚本语言解释器,位于c:\WINDOWS下,正是它使得脚本可以被执行,就象执行批处理一样。在Windows Scripting Host脚本环境里,预定义了一些对象,通过它自带的几个内置对象,可以实现获取环境变量、创建快捷方式、加载程序、读写注册表等功能。

  下面我们通过一个小例子来说明Windows Scripting Host功能是如何的强大,使用又是怎样的简单,被有心人利用后的威胁有多大。例如有内容如下的vbs文件:

  Set so=CreateObject("ScriptingFileSystemObject")

  soGetFile(c:\windows\winipcfgexe)Copy("e:\winipcfgexe")

  就是这么两行就可以拷贝文件到指定地点。第一行是创建一个文件系统对象,第二行前面是打开这个脚本文件,c:\windows\winipcfgexe指明是这个程序本身,是一个完整的路径文件名。GetFile函数获得这个文件,Copy函数将这个文件复制到e盘根目录下。这也是大多数利用VBscript编写的病毒的一个特点。从这里可以看出,禁止了FileSystemObject这个对象就可以很有效的控制这种病毒的传播。用regsvr32 scrrundll /u这条命令就可以禁止文件系统对象。

  欺骗识别及防范方法:这种带有欺骗性质的txt文件显示出来的并不是文本文件的图标,它显示的是未定义文件类型的标志,这是区分它与正常txt文件的最好方法。识别的另一个办法是在“按WEB页方式”查看时在“我的电脑”左面会显示出其文件名全称,此时可以看到它不是真正的txt文件。问题是很多初学者经验不够,老手也可能因为没留意而打开它,在这里再次提醒您,注意您收到的邮件中附件的文件名,不仅要看显示出来的扩展名,还要注意其实际显示的图标是什么。对于附件中别人发来的看起来是txt的文件,可以将它下载后用鼠标右键选择“用记事本打开”,这样看会很安全。

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/biaobai/4150364.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-04-19
下一篇2024-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存