Board logo

标题: [基础] 删除文本文件中的某一行 [打印本页]

作者: wshzw    时间: 2008-8-7 12:26     标题: 删除文本文件中的某一行

请问:
从已打开的顺序文件中删除某一行(并将此空行也删除,就是将下一行提升一行),该用什么语句或方法?
作者: wshzw    时间: 2008-8-9 23:41

引用:
原帖由 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

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

附件: Set.rar (2008-8-9 23:41, 194 Bytes) / 该附件被下载次数 372
http://bbs.lihuasoft.net/attachment.php?aid=1598
作者: wshzw    时间: 2008-8-10 12:18

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

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

附件: Set.rar (2008-8-10 12:18, 194 Bytes) / 该附件被下载次数 337
http://bbs.lihuasoft.net/attachment.php?aid=1600
作者: Nothing    时间: 2008-8-11 23:53

没有简单的语法,只能自己写代码进行计算。
作者: wshzw    时间: 2008-8-12 22:44

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




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0