加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

文本文件操作类 TxtFileDump Version 2.4 - ASP教程

发布时间:2016-05-22 05:13:11 所属栏目:教程 来源:网络整理
导读:% '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<%
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''
''''      FSO.asp
''''
''''      Sub:      CheckFolder(AimFolder)
''''      class:    TxtFileDump
''''
''''      Version: 2.4  Last-Modified: 2005-04-11 12:36
''''      Copyright: Xinsoft ( blogchina.com )
''''
''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
%><%
''// 检查目标文件夹是否存在。如果不存字,创建之。
Sub CheckFolder( AimFolder )
     Dim HasFolder
     Dim RealPath
     ''RealPath=Server.MapPath(AimFolder)
     RealPath=AimFolder
     HasFolder=True

     Dim FoldA,FoldN,i,CurFolder,HasCur

     Dim fso
     Set fso = CreateObject("Scripting.FileSystemObject")
     HasFolder=fso.FolderExists(RealPath)

     If HasFolder<>True Then
           ''fso.CreateFolder( RealPath )
           ''Response.Write fso.GetSpecialFolder
           ''Response.Write RealPath
           FoldA=Split( RealPath,"" )
           FoldN=UBound(FoldA)+1

           CurFolder=FoldA(0) & ""
           For i=1 To FoldN-1
                 CurFolder=CurFolder & FoldA(i) & ""

                 HasCur=fso.FolderExists(CurFolder)
                 If HasCur<>True Then fso.CreateFolder( CurFolder )

                 ''Response.Write "<p>HasCur=" & HasCur & " , " & CurFolder &"</p>"
           Next

     End if

     Set fso=Nothing
End sub
%>
<%

Class TxtFileDump


     Public FilePath
     Public FileName


     Private RowA
     Private RowN

     Private fso

     ''// Read the file into RowA and set RowN=count(line)
     Public Sub Read()
           Dim f,i

           Set f=FSO.opentextfile( FilePath & FileName , 1 )
           RowN=0
           Do While Not f.AtEndOfStream
                 RowN=RowN+1
                 f.SkipLine
           Loop
           f.Close
           ReDim RowA(RowN)
           Set f=FSO.opentextfile( FilePath & FileName , 1 )
           i=0
           Do While Not f.AtEndOfStream
                 RowA(i)=f.ReadLine
                 i=i+1
           Loop
           f.Close

           Set f=Nothing
     End Sub
     ''// View content in RowA
     Public Sub ShowDumpCont()
           Dim i
           For i=0 To RowN-1
                 Response.Write RowA(i) & VBCrLf
           Next
     End Sub

     ''// Return one line in file
     Property Get Line(iLineNumber)
           Dim iVal
           iVal=iLineNumber
           If iVal<1 Then iVal=1
           If iVal>RowN Then iVal=RowN
           Line=RowA(iVal-1)
     End Property
     Property Get LineCount()
           LineCount=RowN
     End Property

     ''// get the line number which include string(s) in file
     ''// search order: from begin to end of the file
     Property Get Find( s )
           Dim i
           Dim Flag
           Flag=0
           For i=0 To RowN-1
                 If InStr( RowA(i),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           Next
           Find=Flag
     End Property

     ''// get the line number which include string(s) in file between lines( iBegin ... iEnd )
     ''// search order: from begin to end of the file
     Property Get FindArea( s , iBegin,iEnd )
           Dim i
           Dim Flag
           Dim iB,iE

           iB=iBegin
           If iBegin<1 Then iB=1
           If iBegin>RowN Then iB=RowN
           iE=iEnd
           If iE<iB Then iE=iB
           If iE>RowN Then iE=RowN

           Flag=0
           For i=0 To RowN-1
           If i>=iB-1 And i<=iE-1 Then
                 If InStr( RowA(i),s )>0 Then
                       Flag=i+1
                       Exit For
                 End If
           End if
           Next
           FindArea=Flag
     End Property

     ''// get the line number which include string(s) in file
     ''// search order: from end to begin of the file
     Property Get FindRev( s )
           Dim i
           Dim Flag

           Flag=0
           For i=RowN-1 To 0 Step -1
                 If InStr( RowA(i),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           Next
           FindRev=Flag
     End Property

     ''// get the line number which include string(s) in file between lines( iBegin ... iEnd )
     ''// search order: from end to begin of the file
     Property Get FindAreaRev( s , iBegin,iEnd )
           Dim i
           Dim Flag
           Dim iB,iE

           iB=iBegin
           If iBegin<1 Then iB=1
           If iBegin>RowN Then iB=RowN
           iE=iEnd
           If iE<iB Then iE=iB
           If iE>RowN Then iE=RowN

           Flag=0
           For i=RowN-1 To 0 Step -1
           If i>=iB-1 And i<=iE-1 Then
                 If InStr( RowA(i),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           End if
           Next
           FindAreaRev=Flag
     End Property

     Public Function sFind( str )
           Dim i
           Dim Flag
           Dim s
           s=LCase(str)
           Flag=0
           For i=0 To RowN-1
                 If InStr( Lcase(RowA(i)),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           Next
           sFind=Flag
     End Function

     Public Function sFindRev( str )
           Dim i
           Dim Flag
           Dim s
           s=LCase(str)
           Flag=0
           For i=RowN-1 To 0 Step -1
                 If InStr( Lcase(RowA(i)),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           Next
           sFindRev=Flag
     End Function

     ''// get the line number which include string(s) in file before the given line number
     ''// search order: from begin to end of the file
     Property Get FindU( s , iPos )
           Dim i
           Dim Flag
           Dim iP

           iP=iPos

           Flag=0
           For i=RowN-1 To 0 Step -1
           If i<iPos-1 Then
                 If InStr( RowA(i),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           End if
           Next
           FindU=Flag
     End Property

     ''// get the line number which include string(s) in file after the given line number
     ''// search order: from begin to end of the file
     Property Get FindD( s , iPos )
           Dim i
           Dim Flag
           Dim iP

           iP=iPos

           Flag=0
           For i=0 To RowN-1
           If i>iPos-1 Then
                 If InStr( RowA(i),s )>0 Then
                       Flag=i+1
                       Exit For
                 End if
           End if
           Next
           FindD=Flag
     End Property

     Public sub SaveLines( iBegin,iEnd )
           Dim f,i
           Dim iB,iE

           iB=iBegin
           If iBegin<1 Then iB=1
           If iBegin>RowN Then iB=RowN

           iE=iEnd
           If iEnd<=iBegin Then iE=iB
           If iEnd>RowN Then iE=RowN

           If  fso.FileExists( FilePath & FileName )=True Then
                 fso.DeleteFile( FilePath & FileName )
           End If

           Set f=fso.opentextfile( FilePath & FileName , 2 , True )
           For i=iB-1 To iE-1
                 f.WriteLine(RowA(i))
           Next
           f.Close
           Set f=Nothing

           Read

     End Sub

     Public Sub Save()
           SaveLines 1,RowN

           Read

     End Sub

     Public sub CutLines( iBegin , iEnd )
           Dim f,i
           Dim iB,iE

           iB=iBegin
           If iBegin<1 Then iB=1
           If iBegin>RowN Then iB=RowN

           iE=iEnd
           If iEnd<=iBegin Then iE=iB
           If iEnd>RowN Then iE=RowN

           If  fso.FileExists( FilePath & FileName )=True Then
                 fso.DeleteFile( FilePath & FileName )
           End If

           Set f=fso.opentextfile( FilePath & FileName , 2 , True )
           For i=0 To RowN-1
                 If i<iBegin-1 Or i>iEnd-1 Then
                       f.WriteLine(RowA(i))
                 End if
           Next
           f.Close
           Set f=Nothing

           Read

     End Sub

     ''// Content replace and save
     Public Function ReplaceContInLines( SrcStr,DesStr, iBegin,iEnd )

           Read

           Dim ReplaceTimes
           ReplaceTimes=0
           Dim f,i
           Dim iB,iE

           iB=iBegin
           If iBegin<1 Then iB=1
           If iBegin>RowN Then iB=RowN

           iE=iEnd
           If iEnd<=iBegin Then iE=iB
           If iEnd>RowN Then iE=RowN

           If  fso.FileExists( FilePath & FileName )=True Then
                 fso.DeleteFile( FilePath & FileName )
           End If

           Set f=fso.opentextfile( FilePath & FileName , 2 , True )
           For i=0 To RowN-1
                 If iBegin-1<=i And i<=iEnd-1 Then
                       If InStr( RowA(i),SrcStr )>0 Then
                             RowA(i)=Replace(RowA(i),SrcStr,DesStr)
                             ReplaceTimes=ReplaceTimes+1
                       End if
                 End If
                 f.WriteLine(RowA(i))
           Next
           f.Close
           Set f=Nothing

           Read

           ReplaceContInLines=ReplaceTimes
     End Function

     Public Function ReplaceCont( SrcStr,DesStr )
           ReplaceCont=ReplaceContInLines(SrcStr,DesStr,1,RowN)
     End Function

     ''// file coalition
     Public Sub CoalitBefore( fp,fn )
           Dim RecA,RecN
           Dim f,i
           RecN=0

           If  fso.FileExists( fp & fn )=True Then
           ''// 读引入文件到 RecA(RecN)中 :: Begin

                 Set f=FSO.opentextfile( FilePath & FileName , 1 )

                 Do While Not f.AtEndOfStream
                       RecN=RecN+1
                       f.SkipLine
                 Loop
                 f.Close

                 ReDim RecA(RecN)

                 Set f=FSO.opentextfile( FilePath & FileName , 1 )

                 i=0
                 Do While Not f.AtEndOfStream
                       RecA(i)=f.ReadLine
                       i=i+1
                 Loop

                 f.Close
                 Set f=Nothing

           ''// 读引入文件到 RecA(RecN)中 :: End
           End If

           If  fso.FileExists( FilePath & FileName )=True Then
                 fso.DeleteFile( FilePath & FileName )
           End If

           Set f=fso.opentextfile( FilePath & FileName , 2 , True )

           ''// 写入引入文件
           For i=0 To RecN-1
                 f.WriteLine(RecA(i))
           Next

           ''// 写入原文件
           For i=0 To RowN-1
                 f.WriteLine(RowA(i))
           Next

           f.Close
           Set f=Nothing

           Read
     End Sub

     ''// file coalition
     Public Sub CoalitAfter( fp,fn )
           Dim RecA,RecN
           Dim f,i
           RecN=0

           If  fso.FileExists( fp & fn )=True Then
           ''// 读引入文件到 RecA(RecN)中 :: Begin

                 Set f=FSO.opentextfile( FilePath & FileName , 1 )

                 Do While Not f.AtEndOfStream
                       RecN=RecN+1
                       f.SkipLine
                 Loop
                 f.Close

                 ReDim RecA(RecN)

                 Set f=FSO.opentextfile( FilePath & FileName , 1 )

                 i=0
                 Do While Not f.AtEndOfStream
                       RecA(i)=f.ReadLine
                       i=i+1
                 Loop

                 f.Close
                 Set f=Nothing

           ''// 读引入文件到 RecA(RecN)中 :: End
           End If

           If  fso.FileExists( FilePath & FileName )=True Then
                 fso.DeleteFile( FilePath & FileName )
           End If

           Set f=fso.opentextfile( FilePath & FileName , 2 , True )

           ''// 写入原文件
           For i=0 To RowN-1
                 f.WriteLine(RowA(i))
           Next

           ''// 写入引入文件
           For i=0 To RecN-1
                 f.WriteLine(RecA(i))
           Next

           f.Close
           Set f=Nothing

           Read
     End Sub

     Private Sub Class_Initialize
           Set fso=CreateObject("Scripting.FileSystemObject")
     End Sub
     Private Sub Class_Terminate
           Set fso=Nothing
     End sub

End class

%>

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!