文件路径分隔符不一定是\,也可能是/,遇到这种情况,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的文件,可以将它下载后用鼠标右键选择“用记事本打开”,这样看会很安全。
欢迎分享,转载请注明来源:表白网
评论列表(0条)