发新话题
打印

[基础] 删除文本文件中的某一行

删除文本文件中的某一行

请问:
从已打开的顺序文件中删除某一行(并将此空行也删除,就是将下一行提升一行),该用什么语句或方法?

TOP

引用:
原帖由 wshzw 于 2008-8-7 12:26 发表
请问:
从已打开的顺序文件中删除某一行(并将此空行也删除,就是将下一行提升一行),该用什么语句或方法?
以附件中的文件,要去掉以“德固赛3”开头的这一行,我现在只能用以下代码: Set.rar (194 Bytes)

Sub test()
   Dim aIni$(), i&, ii&, aTmp$()
   Open App.Path & "\Set.ini" For Input As #1
   aIni() = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbLf)
   Close #1
   
   Do While i < UBound(aIni)
      If Left(aIni(i), 4) <> "德固赛3" Then
         ReDim Preserve aTmp(ii)
         aTmp(ii) = aIni(i)
         ii = ii + 1
      End If
      i = i + 1
   Loop
   
   i = 0
   Open App.Path & "\Set.ini" For Output As #1
   Do While i < UBound(aTmp) + 1
      Print #1, aTmp(i)
      i = i + 1
   Loop
   Close #1
End Sub

这样勉强应付行数不多的小文件,行数很多的文件怎么办?

TOP

Set.rar (194 Bytes) 以附件中的文件,要去掉以“德固赛3”开头的这一行,我现在只能用以下代码:

Sub test()
   Dim aIni$(), i&, ii&, aTmp$()
   Open App.Path & "\Set.ini" For Input As #1
   aIni() = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbLf)
   Close #1
   
   Do While i < UBound(aIni)
      If Left(aIni(i), 4) <> "德固赛3" Then
         ReDim Preserve aTmp(ii)
         aTmp(ii) = aIni(i)
         ii = ii + 1
      End If
      i = i + 1
   Loop
   
   i = 0
   Open App.Path & "\Set.ini" For Output As #1
   Do While i < UBound(aTmp) + 1
      Print #1, aTmp(i)
      i = i + 1
   Loop
   Close #1
End Sub

这样勉强应付行数不多的小文件,行数很多的文件怎么办?

TOP

没有简单的语法,只能自己写代码进行计算。
换个头像,看见广告就眼红,直接封ID。

TOP

谢谢回复!我可以不钻牛角尖啦。

TOP

发新话题