查看完整版本: 删除文本文件中的某一行

wshzw 2008-8-7 12:26

删除文本文件中的某一行

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

wshzw 2008-8-9 23:41

[quote]原帖由 [i]wshzw[/i] 于 2008-8-7 12:26 发表 [url=http://bbs.lihuasoft.net/redirect.php?goto=findpost&pid=20865&ptid=9665][img]http://bbs.lihuasoft.net/images/common/back.gif[/img][/url]
请问:
从已打开的顺序文件中删除某一行(并将此空行也删除,就是将下一行提升一行),该用什么语句或方法? [/quote]以附件中的文件,要去掉以“德固赛3”开头的这一行,我现在只能用以下代码: [attach]1598[/attach]

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

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

wshzw 2008-8-10 12:18

[attach]1600[/attach]以附件中的文件,要去掉以“德固赛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

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

Nothing 2008-8-11 23:53

没有简单的语法,只能自己写代码进行计算。

wshzw 2008-8-12 22:44

谢谢回复!我可以不钻牛角尖啦。
页: [1]
查看完整版本: 删除文本文件中的某一行