Sie sind auf Seite 1von 4

Public Function ReadLine(fname As String, LineNumber As Long) _

As String

Dim oFSO As New FileSystemObject


Dim oFSTR As Scripting.TextStream
Dim lCtr As Long

If oFSO.FileExists(fname) Then
Set oFSTR = oFSO.OpenTextFile(fname)
Do While Not oFSTR.AtEndOfStream
lCtr = lCtr + 1
If lCtr = LineNumber Then
ReadLine = oFSTR.ReadLine
Exit Do
End If
oFSTR.SkipLine
Loop
oFSTR.Close
Set oFSTR = Nothing

End If
End Function

Public Function SaveTextToFile(FileFullPath As String, _


sText As String, Optional Overwrite As Boolean = False) As _
Boolean

On Error GoTo ErrorHandler


Dim iFileNumber As Integer
iFileNumber = FreeFile

If Overwrite Then
Open FileFullPath For Output As #iFileNumber
Else
Open FileFullPath For Append As #iFileNumber
End If

Print #iFileNumber, sText


SaveTextToFile = True

ErrorHandler:
Close #iFileNumber
End Function

VB6 Code 02 (File named : TextFiles.cls) :

Option Explicit

Private m_sFilePath As String


Private m_lSize As Long
Private strLines() As String
Private m_lines As Long
Public completeFile As String

Private Sub ReadFile()


m_lines = 0
Dim fso As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Dim str As String

'// Store size


m_lSize = fso.GetFile(m_sFilePath).Size

Dim i As Long
i = 0
ReDim Preserve strLines(0 To 800000) As String

'// Get number of lines


Set ts = fso.OpenTextFile(m_sFilePath, ForReading, False)

While Not ts.AtEndOfStream


str = ts.ReadLine
i = i + 1
strLines(i - 1) = str
m_lines = i
'completeFile = completeFile & str
Wend
completeFile = Join(strLines, vbCrLf)
'// Close file
ts.Close

'// Release objects


Set ts = Nothing
Set fso = Nothing

End Sub
Public Property Get ReadLines(n As Long, m As Long) As String
Dim buf As String
buf = ""
Dim i As Long
For i = n To m
If i >= n And i <= m Then
buf = buf & strLines(i - 1) & vbCrLf
DoEvents
End If
If i > m Then
ReadLines = buf
Exit Property
End If

Next
ReadLines = buf
End Property

Public Property Get ReadLine(ByVal n As Long) As String


If n <= 0 Then n = 1
If n >= m_lines Then n = m_lines
ReadLine = strLines(n - 1)
End Property

Public Property Let TextFilePath(ByVal pVal As String)

m_sFilePath = pVal
ReadFile

End Property
Public Property Get FileSize() As Long

FileSize = m_lSize
End Property

Public Property Get NoOfLines() As Long


NoOfLines = m_lines
End Property

Public Sub WriteNewLine(ByVal str As String)


m_lines = m_lines + 1
ReDim Preserve strLines(0 To m_lines) As String
strLines(m_lines - 1) = str
WriteFile

End Sub
Private Sub WriteFile()
Dim i As Long
i = 0
Dim fso As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream

Set ts = fso.OpenTextFile(m_sFilePath, ForWriting, False)

For i = 0 To m_lines - 1
ts.WriteLine (strLines(i))
Next
ts.Close

'// Release objects


Set ts = Nothing
Set fso = Nothing

End Sub

Private Sub WriteFileAtPosi(ByVal str As String, ByVal posi As Long)


Dim i As Long
i = 0
Dim fso As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream

Set ts = fso.OpenTextFile(m_sFilePath, ForWriting, False)

For i = 0 To m_lines - 1
If (i = posi) Then
ts.WriteLine (str)
End If
ts.WriteLine (strLines(i))
Next
ts.Close

'// Release objects


Set ts = Nothing
Set fso = Nothing

End Sub
Public Sub InsertNewLine(ByVal str As String, ByVal posi As Long)
WriteFileAtPosi str, posi
ReadFile
End Sub

Private Sub ReplaceFileAtPosi(ByVal str As String, ByVal posi As Integer)


Dim i As Integer
i = 0
Dim fso As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream

Set ts = fso.OpenTextFile(m_sFilePath, ForWriting, False)

For i = 0 To m_lines - 1
If (i = posi - 1) Then
ts.WriteLine (str)
i = i + 1
End If
ts.WriteLine (strLines(i))

Next
ts.Close

'// Release objects


Set ts = Nothing
Set fso = Nothing

End Sub

Public Sub ReplaceLine(ByVal str As String, ByVal LineNum As Integer)


ReplaceFileAtPosi str, LineNum
ReadFile
End Sub

Public Sub DeleteLines()


Dim i As Long
i = 0
Dim fso As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream

Set ts = fso.OpenTextFile(m_sFilePath, ForWriting, False)

For i = 5000 To m_lines - 1


ts.WriteLine (strLines(i))
Next
ts.Close

'// Release objects


Set ts = Nothing
Set fso = Nothing
ReadFile
End Sub

Das könnte Ihnen auch gefallen