<
您还没有登录┊登录注册 当前在线:464
源码程序系统工具编程开发图形图像网络软件应用软件多媒体类娱乐休闲驱动程序各类教程各类论文文章阅读
ASPPHPJSPASP.NETVBVF百度搜索星星练题网络文摘股市消息技能习题详细分类
当前位置:首页 \ 源码程序 \ ASP代码 \ 其它类别
站内搜索


ASP读取文本文件、写入文本文件的方法

文件大小:125 K
运行平台:Windows9X/ME/NT/2000/XP
级别评定:
添加时间:2007-7-22 10:16:40
最后更新:2007-7-22 12:04:25
相关链接:无
所需金额:0 元
添加者:管理员

Download.1 Download.2 Download.3

/ ::软件简介:: / ::相关软件:: / ::软件点评:: /::上一个::/ ::下一个:: /
管理首页
用ASP怎么读取文本文件?
来源:http://zhidao.baidu.com/question/25820890.html

'************************************************** 
'函数名:FSOFileRead 
'作 用:使用FSO读取文件内容的函数 
'参 数:filename ----文件名称 
'返回值:文件内容 
'************************************************** 
function FSOFileRead(filename) 
Dim objFSO,objCountFile,FiletempData 
Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 
Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True) 
FSOFileRead = objCountFile.ReadAll 
objCountFile.Close 
Set objCountFile=Nothing 
Set objFSO = Nothing 
End Function 

'************************************************** 
'函数名:FSOlinedit 
'作 用:使用FSO读取文件某一行的函数 
'参 数:filename ----文件名称 
' lineNum ----行数 
'返回值:文件该行内容 
'************************************************** 
function FSOlinedit(filename,lineNum) 
if linenum < 1 then exit function 
dim fso,f,temparray,tempcnt 
set fso = server.CreateObject("scripting.filesystemobject") 
if not fso.fileExists(server.mappath(filename)) then exit function 
set f = fso.opentextfile(server.mappath(filename),1) 
if not f.AtEndofStream then 
tempcnt = f.readall 
f.close 
set f = nothing 
temparray = split(tempcnt,chr(13)&chr(10)) 
if lineNum>ubound(temparray)+1 then 
exit function 
else 
FSOlinedit = temparray(lineNum-1) 
end if 
end if 
end function 

'************************************************** 
'函数名:FSOlinewrite 
'作 用:使用FSO写文件某一行的函数 
'参 数:filename ----文件名称 
' lineNum ----行数 
' Linecontent ----内容 
'返回值:无 
'************************************************** 
function FSOlinewrite(filename,lineNum,Linecontent) 
if linenum < 1 then exit function 
dim fso,f,temparray,tempCnt 
set fso = server.CreateObject("scripting.filesystemobject") 
if not fso.fileExists(server.mappath(filename)) then exit function 
set f = fso.opentextfile(server.mappath(filename),1) 
if not f.AtEndofStream then 
tempcnt = f.readall 
f.close 
temparray = split(tempcnt,chr(13)&chr(10)) 
if lineNum>ubound(temparray)+1 then 
exit function 
else 
temparray(lineNum-1) = lineContent 
end if 
tempcnt = join(temparray,chr(13)&chr(10)) 
set f = fso.createtextfile(server.mappath(filename),true) 
f.write tempcnt 
end if 
f.close 
set f = nothing 
end function


ASP写入文本文件的过程函数
文章来源:http://blogcup.com/user1/3761/archives/2005/35284.shtml

今天写程序的时候要反复用到写入文本文件,于是就写了一个过程函数,希望对大家有用.

代码: 
Sub Write2File(strFile, strContent, blnAppend)
' 写入文件
' strFile 文件名(路径) , strContent 写入的内容, blnAppend 是否追加
        On Error Resume Next
        Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
        If blnAppend Then
                Set objWriteText = objFSO.OpenTextFile(strFile,8,True)
        Else
                Set objWriteText = objFSO.OpenTextFile(strFile,2,True)
        End If
        objWriteText.WriteLine (strContent)
        Set objWriteText = Nothing
        Set objFSO = Nothing
        ' 容错处理
        Select Case Err
                Case 424 Response.Write "路径未找到或者该目录没有写入权限."
'                Case Else Response.Write Err.Description
                Case Else Response.Write Err
        End Select
End Sub 
 

调用方法:


Write2File "c:\dd.ini", "dd", True

或者


Call Write2File ("c:\dd.ini", "dd", True)
说明:
1.自动建立文件;
2.不能自动建立目录 
 


如何仅读取文本文件的最后一行?
文章来源:http://hi.baidu.com/wddas520/blog/item/4658003bc6a287ea15cecbbf.html

2006年11月12日 星期日 02:19
问:
您好,脚本专家!如何仅读取文本文件的最后一行?

-- BM

答:
您好,BM。如果您曾经想知道您好,脚本专家!与其它每日专栏(比如,知心姐姐)的不同之处,那么,下面是一种途径。假设有人在给知心姐姐的信中说:

知心姐姐:
我的生活一团糟,我需要采取一些措施来应对。我如何能扭转我的生活并且重新快乐起来?
绝望之人于代顿

知心姐姐绝不会给绝望之人这样的答复:

亲爱的绝望之人:
唉,您的生活不能变好了。很抱歉。

那么,您认为脚本专家会如何答复您关于读取文本文件的最后一行呢?答对了:

亲爱的 BM:
唉,您不能。很抱歉。

不过,请等一下,先不要走。的确,知心姐姐绝不会说,“您知道,Desperate,要使您快乐起来我无能为力。但是这有一个办法可以使您看起来是快乐的。”然而脚本专家却没有这样的疑虑。换句话说,我们无法为您提供仅读取文本文件最后一行的脚本。但是以下脚本可以看起来仅读取文本文件的最后一行:

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:/Scripts/Test.txt", ForReading)

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
Loop

objFile.Close

Wscript.Echo strLine

我们此处遇到的问题是 FileSystemObject(用于处理文本文件的脚本对象)只知道一个方向:向前。它必须从文件开头开始,而且只能继续向文件的末尾运行。您无法指定其他起始位置且无法反向读取(即从末尾到开头)。实际上,您甚至无法重新读取文件:除非关闭然后再重新打开该文件,否则到达文件末尾后您无法重新读取该文件。这就是为什么涉及到文本文件时,教程的解决方法几乎都是一样的。

此处的解决方法是,我们实际上确实从头至尾读取整个文本文件。然而,我们只跟踪所读取的最后一行。读到文件的末尾时,我们将得到一个变量,它包含所读取的最后一行的值;它同时也是文件的最后一行。回显该变量的值时,看起来好像我们只读取了最后一行(尤其是没有其他东西要处理的时候,FileSystemObject 的速度非常快)。我们没有 - 我们实际上读取了整个文件 - 但是没有人会知道。这将是我们的小秘密。

至于代码本身,我们首先定义名为 ForReading 的常量并将其值设为 1;我们将使用该常量告诉 FileSystemObject 我们要打开待读取的文本文件。然后,我们创建 Scripting.FileSystemObject 的一个实例,并且使用 OpenTextFile 方法打开文件 C:/Scripts/Test.txt。接下来是下面这个代码块:

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
Loop

此处我们要做的只是逐行读取文件,直到文件的末尾(即读到文件流末尾)。每次读取某行时,我们用刚读取的文本替换变量 strLine 的值。例如,假设文本文件包含三行:

A
B
C

在我们的循环中读取行 1,因此将值 A 赋给 strLine。在下一个循环中读取第二行,这意味着将值 B 赋给 strLine。再循环一次并且将值 C 赋给 strLine。因为我们已到达文件末尾,故 strLine 保持值 C,该值恰好为文件的最后一行。然后关闭文件并回显 strLine 的值。所有人只知道我们所做的是读取 - 返回 - 文件最后一行的值。

是的,很隐秘。

不可否认,此脚本存在一个潜在的问题。假设文件末尾添加了几行空白行。脚本将忠实地返回空(空值)作为文本文件的最后一行。这就是它应该做的:毕竟,文件的最后一行是空白。但是假设这是某种类型的日志文件,出于某种原因,创建此日志的应用程序总是将空白行放到文件末尾。在这种情况下,可能您真正感兴趣的是文件中最后的非空白行。下面是修改后的脚本,它使用 Len 函数检查所读取的每行的长度。如果长度等于 0,则意味着此行为空白行,便不在变量 strLine 中存储该值:

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:/Scripts/Test.txt", ForReading)

Do Until objFile.AtEndOfStream
    strNextLine = objFile.ReadLine
    If Len(strNextLine) > 0 Then
        strLine = strNextLine
    End If
Loop

objFile.Close

Wscript.Echo strLine

 

ASP入门基础教程-读取文本文件 
来源: http://www.3800hk.com/Article/web/ASP/aspyy/2007-04-05/Article_128906.html

  一、读取文本文件的步骤如下:

   1、创建 FileSystemObject 对象实例;

    <% Set fso=Server.CreateObject("Scripting.FileSystemObject") %>
   2、使用FileSystemObject对象的OpenTextFile方法返回一个 TextStream 对象实例;

    <% Set txtFile=fso.OpenTextFile(filename[, iomode[, create[, format]]]) %>
   3、使用 TextStream 对象的 Read 、ReadLine 、 ReadAll 、Skip 或 SkipLine 方法从文件中读取数据。

   注:下面我们以 OpenTextFile 方法的各参数作一下注解:

  1)txtFile :由OpenText 方法返回的一个TextStream 对象的实例名;     

  2) fso :必选参数,指定 FileSystemObject 对象的名称;

  3) filename :必选参数,是一个字符串表达式,用于指定要打开的文件名称;

   4)ipmode :是可选参数,用于指定文件的输入/输出模式:

         * 如果该参数为1或省略,则以只读模式打开文件,不能对此文件进行写操作;

            * 如果该参数为2,则以只写方式打开文件,不能对此文件进行读操作;

  * 如果该参数为8,则打开文件并在文件末尾进行写操作。

        5)create 是可选参数,取 Boolean 值,指出指定的 filename 不存在时是否能够创建新文件:

  * 如果该参数为 True,允许创建新文件;

         * 如果该参数为 False 或省略,不允许创建新文件。

       6)format ;是可选参数,指定以何种格式打开文件:

          * 如果该参数为0或省略,以ASCII 格式打开文件

   * 如果为-1,以Unicode 格式打开文件;

  * 如果该参数为-2,则以系统默认格式打开文件。

  二、读取文件时用到的方法如下表:

TextStream 对象的方法 
  方 法描述 / 表达式 / 注解 Read从文件指针的位置读取后面的Num个字符,然后存放至字符串。object.Read(characters)参数object指定TextStream对象的名称,Characters参数指定要从文件读的字符串数目。ReadAll读取整个文件,然后存放至字符串。object.ReadAll参数object指定TextStream对象的名称。ReadLine从文件指针的位置读取一行,然后存放至字符串。object.ReadLine参数object指定TextStream对象的名称。Skip读取文件时跳过 Num 个字符。 object.Skip(characters)参数object指定TextStream对象的名称,Characters参数指定要从文件读的字符串数目。SkipLine读取文件跳过一行。object.SkipLin参数object指定TextStream对象的名称。

    注:1)跳过一行意味着读并放弃本行所有字符,如果文件不是以读方式打开则会出现错误。 
   2) 对打开的文件执行读写操作后,应使用 TextStream 对象的 Close 方法关闭文件。

   三、实例:本实例说明如何利用 TextStream 对象的属性和方法读取文本文件的内容。代码如下:

  1) 现有的文本文件 text.txt 的内容如下(text.txt):

红豆 
  [唐] 王维

  红豆生南国,春来发几枝。

  愿君多采撷,此物最相思。    

        2) 读取上面文本文件的代码如下(read/1.asp):

<html>
<% @ language="vbscript" %>
<head><title>读取文件示例</title></head>
<body>
<%
set fso=server.CreateObject("Scripting.FileSystemObject")
Set txtFile=fso.OpenTextFile(Server.MapPath("text.txt"))
Response.Write "<h3>文本文件text.txt的内容如下:</h3>"
Response.Write "<hr width='50%' color='#cc9999'>"
'使用<PRE>...</PRE>标记包含预先格式化的文件
Response.Write "<PRE>"
While Not txtFile.AtEndOfStream
Response.Write "<center>" & txtFile.ReadLine & "</center><br>"
Wend
txtFile.Close
Response.Write "<PRE>"
%>
</body>
</html> 
 
 
 
读取文本文件.txt修改其中的部分内容后生成新的.txt文件
如题,   
    
  现在的.txt文件格式   
    
  10   
  20   
  30   
  40   
  50   
  70   
  80   
    
  把其中是全角格式的数字,如上面的10 50 70改为半角的10   50   70   
  修改完成后并生成一个新的.txt文件   

解答:
可以先全部读取出来   
  逐行转换~用StrConv(XX,   VbStrConv.Narrow)


请问用ASP如何读取一个文本文件的末尾?
如果一个文本文件有100M   .我要快速的读这个文件的最后一行   
来源:http://topic.csdn.net/t/20040116/17/2670642.html

打了半天,最后还是自己写了一个功能可以实现,但性能比较低的:   

  <script   language=vbs>   
  Function   readFile(strFile)   
  On   Error   Resume   Next   
  Dim   fso,   fStream,   i   
  readFile   =   ""   
  Set   fso   =   CreateObject("Scripting.FileSystemObject")   
  Set   fStream   =   fso.OpenTextFile(strFile,   1,   False,   False)   
  i   =   0   
  While   Not   fStream.AtEndOfStream   
  readFile   =   Trim(fStream.ReadLine)   
  Wend   
  fStream.Close   
  Set   fStream   =   nothing   
  Set   fso   =   nothing   
  If   Err.Number   <>   0   Then   Err.Clear   
  End   Function   
  '调用使用参数:strFile   文件名   
  MsgBox   readFile("c:\test.txt")   
  </script>


试试:   
  str=f.readAll   
  arr   =   Split(str,vbCrLf)   
  Response.write   arr[UBound(arr)]

相关软件
暂无相关软件


1分 0
2分 0
3分 0
4分 0
5分 0
共有 0 人打分
平均得分:0


按字符查询:ABCDEFGHIJKLMNOPQRSTUVWXYZ0~9中文
下载图示: - 附汉化补丁 - 附注册 - 会员软件 - 推荐 - 最新添加
Rainight, 星旺坡 联网备案号:41092802000212 豫ICP备19032584号-1 页面执行时间: 0.14秒
业务QQ:80571569 手机:13030322310