关于文件操作的问题,请高手帮忙!

coldsky 2003-08-20 01:04:30
<%@ Language=VBScript %>
<%
fileName = Server.MapPath ("1.txt")

Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set myfile= FileObject.OpenTextFile (fileName, 1)
str = myfile.ReadLine

Response.Write(str)
%>

就是执行不起来,当前目录有“1.txt”,其中有内容。
不知道是哪错了呢?
是否还要设置什么权限?
多谢!
...全文
37 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sw47 2003-08-22
  • 打赏
  • 举报
回复
把ie的安全级别降低
rainfly99 2003-08-20
  • 打赏
  • 举报
回复
谢谢大家了。
不提示任何信息,一直在那等啊等,
我也觉得与权限有关?
怎么设置??
aBoris 2003-08-20
  • 打赏
  • 举报
回复

使用FSO把文本信息导入数据库

在开发WEB应用程序中,我们经常需要对文件系统中的驱动器、文件夹和文件进行处理,比如收集驱动器的相关信息;创建、添加、移动或删除文件夹和文件等。在VB6中新提供了一套称为FSO(File System Object)对象模型来对文件系统进行访问处理。该模型提供了一个基于对象的工具,通过它所提供的一系列属性和方法,我们可以在应用程序中更简单、灵活地对文件系统进行各种操作。
  一、FSO简介
  FSO对象模型包含以下几种对象:
  Drive对象:允许收集系统物理或通过LAN与系统逻辑连接的硬盘、CD-ROM等驱动器的可用空间、共享名等信息。
  Folder对象:允许创建、删除或移动文件夹,并向系统查询文件夹的名称、路径等。
  Files对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径等。
  TextStream对象:允许创建和读写文本文件。
  FileSystemObject对象:提供一整套用于驱动器、文件夹和文件操作的方法,在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该对象相关联的很多方法重复了前面四个对象中的方法,因此我们既可以通过FileSystemObject对象来对驱动器、文件夹和文件进行大多数操作,也可以通过对应的驱动器、文件夹或文件对象对这些组件进行操作。FSO模型通过两种方法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是为了实现最大的编程灵活性。
在这篇文章中,我们将讲解利用FSO对象模型的TextStream对象对文本文件的操作。
(一) 用 FileSystemObject 来获取文本文件对象
  1.创建一个 FileSystemObject 对象实例
要进行文件操作,首先必须创建一个 FileSystemObject 对象实例,用来创建或打开一个文件.创建一个 FileSystemObject 对象实例的具体格式为(以AFileSystemObject)为例:
Set AFileSystemObject = CreateObject("Scripting.FileSystemObjecct")
  2.用 FileSystemObject 来获取文本文件对象TextStream
FileSystemObject 提供了两种方法用于获取文本文件对象 TextStream,其中用于创建
文件的是 CreateTextFile,用于打开已存在文件的是 OpenTextFile,两种方法的返回结果都是
一个 TextStream 对象的实例,利用该对象可以进行文件的具体操作.
⑴ 创建一个新文件
  创建新文件的方法的具体格式为(以AFileSystemObject为例):
   AFilesystemObject.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode)
其中:
  NewFileName 是一个string值,指定要建立的文件的名称,通常为文件的实际路径
加文件名称,如C:\webshare\aspsamp\filetest.txt
  OverwriteExistingFile 是一个Boolean值,表示如果有同名文件存在时是否覆盖
原来的文件.该参数可以省略,缺省时为False,即不覆盖原来文件.
  IsUnicode 是一个Boolean值,表示要建立的文件是ASCII文件还是Unicode文件,
该参数可以省略,缺省时为False,即为ASCII文件.
⑵ 打开已存在的文件
  打开已存在文件的方法的具体格式为(以AFileSystemObject为例):
   AFilesystemObject.OpenTextFile(FileName,IOMode,create,format)
其中:
  FileName 是一个string值,指定要打开的文件的名称,通常为文件的实际路径
加文件名称,C:\filepath\test.txt
  IOMode 是常数值,表示打开文件的目的,ForReading(1)表示用于读取数据;
ForAppending表示用于增加数据.该参数可以省略,缺省时为ForReading.
  Create 是一个Boolean值,表示要打开的文件不存在时是否创建新文件,
该参数可以省略,缺省时为False,即不创建新文件.
  Format 表示文件打开的方式.其可能的值及含义如下:
TristateTrue : 以 Unicode 的方式打开.
TristateFalse : 以 ASCII 的方式打开.
TristateUseDefault : 以系统默认的方式打开.
该参数可以省略,缺省时为 TristateFalse ,即ASCII方式.
(二).用 TextStream 进行文件操作
  在建立或打开了文件之后,就可利用对象 TextStream 提供的方法进行文件的实际操作了.
  1.用于写操作的方法有:
⑴ Write(string)
  将由string指定的字符串写入到文件中.
⑵ WriteLine(string)
  在文件中写入由string指定的字符串,并写入一个换行字符.
  参数string可以省略,此时将在文件中插入一个空行.
⑶ WriteBlankLines(NumOfLines)
  在文件中插入若干空行,行数由 NumOfLines 指定.
  2.用于读操作的方法和属性方法有:
⑴ AtEndOfLine
  该属性是一个Boolean值,表示文件指针是否已指向当前行的行尾.
⑵ AtEndOfStream
  该属性是一个Boolean值,表示文件指针是否已指向文件尾.
⑶ Column
  该属性是一个整数值,表示文件指针在当前行中的位置.
⑷ Line
  该属性是一个整数值,表示文件指针所在行的行号.
⑸ Read(NumOfCharacters)
  该方法从文件当前位置开始,读入由NumOfCharacters数目指定的若干字符,返回一个
  字符串.
⑹ ReadLine
  该方法从文件当前位置开始,读入当前行的内容直到行尾,返回一个字符串.
⑺ ReadAll
  该方法从当前位置开始,读入整个文件的内容直到文件结束,返回一个字符串.
⑻ Skip(NumOfCharacters)
  该方法从文件当前位置开始,跳过由NumOfCharacters数目指定的若干字符.
⑼ SKipLine
  该方法从文件当前位置开始,跳过当前行的内容.
  3.用于关闭文件的方法有:
⑴ Close
  关闭已经建立或打开的文件.
(三)、下面就以一个实例来说明如何使用FSO来读取文本文件和如何保存到数据库:
1、 先创建一个读取文件路径的页面:file.htm

<FORM METHOD=POST ACTION="upFile.asp" >
<div align="center"> <br>
<br>
<br>
<br>
<input type="file" name="path" size="40">
<INPUT TYPE="submit" name="dr" value="导入信息">
</div>
</FORM>

2、 编写把获取到的文本值保存到数据库代码:upFile.asp
<%@Language="VBScript"%>
<%Response.Buffer=true%>
<!--#include file="adovbs.inc"-->
<%
strConn="DSN=DataSourceName"
set Conn=Server.CreateObject("ADODB.Connection")
Conn.open strConn
set ObjComm=Server.CreateObject("ADODB.Command")
ObjComm.CommandText="sp_AddMsg" ‘调用存储过程
ObjComm.CommandType=adCmdStoredProc
Set ObjComm.ActiveConnection=Conn
''''''''''创建输入输出参数'''''''''''''''''
Set ObjParamECom=ObjComm.CreateParameter("WC_ECompanyName",adVarchar,adParamInput,100)
ObjComm.Parameters.Append ObjParamECom
'@in_ECompanyName Varchar(50), --公司英文名称
Set ObjParamAddr=ObjComm.CreateParameter("WC_Address",adVarchar,adParamInput,200)
ObjComm.Parameters.Append ObjParamAddr
'@in_Address Varchar(50), --公司地址
Set ObjParamCity=ObjComm.CreateParameter("WC_City",adVarchar,adParamInput,100)
ObjComm.Parameters.Append ObjParamCity
'@in_City Varchar(50), --城市

''''''''''创建参数完毕''''''''''''''''''''
%>
<%
dim AllText,strLine1,strLine2,strLine3
dim strpath,fileurl
fileurl=""
strpath=Trim(Request.form("path"))
fileurl=strpath
SET FSO=CreateObject("Scripting.FileSystemObject")
SET ATextStream=FSO.OpenTextFile(fileurl,1,false,TristateFalse)
'''''''''提取数据''''''''''''''''''''''''''''
DO WHILE NOT ATextStream.AtEndOfStream
''''''初始化变量''''''''''''''''
strLine1=""
strLine2=""
strLine3=""

'''''''''''''''''''''''''''''''
ATextStream.SkipLine
ATextStream.Skip(11)
strLine1=Trim(ATextStream.ReadLine)
ATextStream.Skip(11)
strLine2=Trim(ATextStream.ReadLine)
ATextStream.Skip(5)
strLine3=Trim(ATextStream.ReadLine)

'End if
''''''''''将变量加入参数集'''''''''''''
ObjParamECom.value=strLine1
ObjParamCCom.value=strLine2
ObjParamAddr.value=strLine3

''''''''''操作结束''''''''''''''''''''
ObjComm.Execute() '运行命令
LOOP
response.write "<br>"+"导入库成功!<a href=dolist.html>[继续导入]</a><br>"
set Conn=nothing
set FSO=nothing
set ATextStream=nothing
%>
附:存储过程sp_AddMsg代码
CREATE PROCEDURE dbo.sp_AddMsg --导入国外企业信息
(
@in_CompanyName Varchar(100), --公司名称
@in_Address Varchar(200), --公司地址
@in_City Varchar(100), --公司所在城市

)
AS
SET NOCOUNT ON
BEGIN TRAN
INSERT INTO Tb_WCLibrary(
WC_CompanyName,
WC_CCompanyName,
WC_Address,

)
VALUES(
@in_CompanyName,
@in_CCompanyName,
@in_Address,

)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN -1
END
COMMIT TRAN
RETURN 0
SET NOCOUNT OFF
至此,全文内容讲解结束,希望这篇文章能给读者带来一定的帮助。

无爱大叔 2003-08-20
  • 打赏
  • 举报
回复
<%@ Language=VBScript %>
<%
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("d:\1.txt", 1, True)
str=f.ReadLine
response.write str
%>
chinesun 2003-08-20
  • 打赏
  • 举报
回复
读取文件
要从文本文件读取数据,则使用 TextStream 对象的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任务应使用哪种方法。

任务 方法
从文件读取指定数量的字符。 Read
读取一整行(一直到但不包括新行字符)。 ReadLine
读取文本文件的整个内容。 ReadAll

如果使用 Read 或 ReadLine 方法,并且想跳过数据的特殊部分,则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 Left、Right 和 Mid)来分析,连接等等。

下面的例子示范了如何打开文件,和如何写数据到文件中并从文件读取数据:

[VBScript]
Sub ReadFiles
Dim fso, f1, ts, s
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
' 写入一行。
Response.Write "Writing file <br>"
f1.WriteLine "Hello World"
f1.WriteBlankLines(1)
f1.Close
' 读取文件内容。
Response.Write "Reading file <br>"
Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
s = ts.ReadLine
Response.Write "File contents = '" & s & "'"
ts.Close
End Sub
[JScript]
function ReadFiles()
{
var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
// 写入一行。
Response.Write("Writing file <br>");
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
f1.Close();
// 读取文件内容。
Response.Write("Reading file <br>");
ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
s = ts.ReadLine();
Response.Write("File contents = '" + s + "'");
ts.Close();
}
chinesun 2003-08-20
  • 打赏
  • 举报
回复
读取文件
要从文本文件读取数据,则使用 TextStream 对象的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任务应使用哪种方法。

任务 方法
从文件读取指定数量的字符。 Read
读取一整行(一直到但不包括新行字符)。 ReadLine
读取文本文件的整个内容。 ReadAll

如果使用 Read 或 ReadLine 方法,并且想跳过数据的特殊部分,则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 Left、Right 和 Mid)来分析,连接等等。

下面的例子示范了如何打开文件,和如何写数据到文件中并从文件读取数据:

[VBScript]
Sub ReadFiles
Dim fso, f1, ts, s
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
' 写入一行。
Response.Write "Writing file <br>"
f1.WriteLine "Hello World"
f1.WriteBlankLines(1)
f1.Close
' 读取文件内容。
Response.Write "Reading file <br>"
Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
s = ts.ReadLine
Response.Write "File contents = '" & s & "'"
ts.Close
End Sub
[JScript]
function ReadFiles()
{
var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
// 写入一行。
Response.Write("Writing file <br>");
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
f1.Close();
// 读取文件内容。
Response.Write("Reading file <br>");
ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
s = ts.ReadLine();
Response.Write("File contents = '" + s + "'");
ts.Close();
}
gancen 2003-08-20
  • 打赏
  • 举报
回复
有什么错误信息?
然后再进行修改发现问题!
lions911 2003-08-20
  • 打赏
  • 举报
回复
确认有FSO权限
lions911 2003-08-20
  • 打赏
  • 举报
回复
Response.Write str去掉括号
zhxhjj 2003-08-20
  • 打赏
  • 举报
回复
提示什么
gshope 2003-08-20
  • 打赏
  • 举报
回复
有什么错误信息?
sw47 2003-08-20
  • 打赏
  • 举报
回复
Set myfile= FileObject.getfile (fileName)
sw47 2003-08-20
  • 打赏
  • 举报
回复
Set myfile= FileObject.getfile(fileName)
BMP magic是一个新型的加密软件,你可以用它把任何格式的windows文件存入到一幅24位真彩色的BMP图片中,神奇的是这幅内部藏有文件的图片的尺寸、大小不变! 在接下来的文字中您会了解到关于这个新版软件的强大功能与安全算法:在5.0B版本中:★支持jpg格式! 在本版本中,新加入了对jpg格式的自动转换——如果您打开的是一幅jpg图片,程序会自动转换为bmp格式来处理,不用事先再用其它工具转换。★可以隐藏比图片自身大若干倍的文件! 您要相信自己的眼睛:一幅200K的24位BMP,利用本程序成功地将一个1474.56K=1.44兆的WPS文件隐藏于其中!而且这还不是软件创的最高记录。★通过一系列优化算法,使隐藏文件的图片画质得到最大程序的提升! 一幅图片在最大限度上隐藏外部文件后,画质依然清晰,色彩过渡仍很平滑,基本不存在色块问题。这种算法理论上还未达到极限,后续版本中还将继续改进算法使画质进一步提升。★引领数据压缩领域新潮流! 目前最先进的压缩工具对文本文件的压缩率也不过90%,然而利用本软件将图片隐藏文件后再压缩,却有望突破这一“极限”压缩率!基于此种组合压缩法,阁下的160G海量硬盘是否可以多出几十G呢?★独创的255位动态密钥加密术让数据隐藏的更安全! 传统加密法采用常量作加密密钥不少解密高手正是利用这一普遍规律分析加密算法从而成功将所谓的“安全数据”解密。本软件自这一版本起采用最前沿的“动态密钥加密算法”使被加密的数据安全性能有了一个“质”的飞跃!也就是说,即使您用同一幅图片隐藏同一个文件,每次生成的新图片内部数据绝对是不一样的!★采用多种加密方式加密数据,无须担心数据传递过程的“中介者”! 新版软件中采用六种方式加密数据: 1.日期时间锁定; 2.外部软件锁定; 3.程序版本识别; 4.机器硬件锁定; 5.操作系统识别; 6.解密口令锁定。 这六种方式可以任意组合,现分别说明如下: A.采用“日期时间”限制时,您可以输入自1985-2099年间的任何时间(精确到秒),这样数据被加密后,解密者如不是在设定的时间企图解密将得不到正确的隐藏文件; B.采用外部软件锁定时,你可以选择你机器上有的任何一个文件做为锁定用程序,对方在解密时,必要性要用同样的文件来做为密匙才能解开里面的密文(你用的是什么文件,在“图文信息”中是查看不到的!)。 C.程序版本识别,也就是说,你用某一个版本的BMP magic加密了文件后,用其它版本的BMP magic是无法解开里面的密文的,换句话说,就是我们开发的程序,没有设置“向下兼容”; D.机器硬件锁定,你可以用你机器上的任何一个驱动器作为锁定密匙,包括硬盘逻辑分区,光盘,软盘,这样,除了在你的硬件环境中,别人将无法得到正确的加密文件; E.操作员识别,你选用“操作系统识别”后,就只能在相同的操作系统下解开密文,并且,在“图文信息”中不会标识出系统类型; F.采用“用户口令”限制时,您可以输入最长255位的密码(可以是您有办法输入其中的任何字符,当然有中文啦...)。★在图片中的任何添加数据(包括添加的文件头部信息)均用不同密钥加密,如不利用本软件根本提取不到任何有用的信息!这使数据的安全保密性得以极端的提高!★图片中可以像电子邮件一样附加“发送人”、“接收人”、“主题”及留言信息,使加密后的图片交互性更强,十二分的人性化设计!...... 共享软件时代,加密软件数不胜数,相信阁下在看到上面的文字后会在选择加密软件方面有一个成熟的理念,同时我们也相信,这个最新版的软件会带给您生活与工作上的方便与惊喜!********************************************************* 在您使用本软件之前,希望事先能与阁下达成下面的协议: 1.本软件纯属利用娱乐创意编写,参与软件编写的所有人员均不会对您由于使用本软件所造成的一切后果与损失负责! 2.本软件加密技术相当先进,属于“一次性加密”,故软件作者不会接受任何人员提出的“数据抢救”询求,阁下自我保重! 3.本软件的所有流行版本严禁任何组织或个人对其进行反编及商业炒作或以作者名义营利,但欢迎在不影响版权时传播与发布! 如果用户使用本软件,就表示默认上述许可,否则销毁本软件! ********************************************************* 经测试,本软件在Window9x/Me/NT/2000/XP运行稳定并无不安全因素敬放心使用并烦劳扩充测试,谢谢! 感谢众多朋友帮忙测试软件!

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧