用这样的算法来试试吧
基于简单实用的原因,这里用到FSO来操作文本文件,里面还要用到数组的开销,所以算法效率不是很高,如果是操作巨大的文本文件的话,那也许需要酌情考虑了。
程序界面如下:
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
源代码如下:
Private Sub Command1_Click()
'************************************************************
'先在程序所在的文件夹下建立TEST.txt文本文件并输入几行内容
'在窗体上添加两个文本框(Text1和Text2),一个命令按钮(Command1)
'Text1.Text输入的是要修改的行号
'Text2.Text输入的是新的修改内容
'Code by 编程之星 2008.3.25 下午
'************************************************************
Dim LineArr() As String [color=Green]'所有行文本
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TXTfile = FSO.GetFile(App.Path + "\TEST.txt")
Set TextStrem = TXTfile.OpenAsTextStream(1)
Dim i As Integer
'行号
Do While Not TextStrem.AtEndOfStream
i = i + 1
ReDim Preserve LineArr(1 To i)
If i = CInt(Trim(Text1.Text)) Then
TextStrem.SkipLine
Else
LineArr(i) = TextStrem.ReadLine
End If
Loop
LineArr(CInt(Trim(Text1.Text))) = Text2.Text
Set TextStrem = TXTfile.OpenAsTextStream(2)
For Each l In LineArr
TextStrem.WriteLine l
Next
MsgBox "成功修改指定行的内容"
End Sub[/color]
[[it] 本帖最后由 编程之星 于 2008-3-25 15:04 编辑 [/it]]