vb6 对文件的写入、替换、删除和插入某行操作

最近用vb在写一个软件,用到了对文件的写入、替换、删除操作,对网友的代码进行了修改,写入模块和函数,能够实现上述功能。


有5个文本框,以前四个文本框的内容为判别条件,即:如果保存的文件中某行前四项(以空格为区分)与文本框中的Text1、Text2、Text3、Text4相同,点击“替换某行”按钮可以将Text1-Text5中的内容替换到原文件中。点击“删除某行”则删除文件中与Text1-Text4相同的那一行。插入某行还没有用到,没有测试。

Dim MonitorSetFile As String  '文件名
Private Sub Command1_Click()
MonitorSetFile = App.Path + "\InstMonitorSet.dat"
 Dim ThisInst As String
               ThisInst = Text1.Text + " " + Text2.Text + " " + Text3.Text + " " + Text4.Text + Text5.Text
 Open MonitorSetFile For Append As #1   '以追加方式打开文件
  'Print #1,                 '为防止原文件末尾没有换行,而加入的换行
  Print #1, ThisInst        '加入一个空行,为新加入内容的加入时间,若不需要可删除或注释它
  'Print #1, Text1.Text
  Close #1
End Sub

Private Sub Command2_Click()
'替换
MonitorSetFile = App.Path + "\InstMonitorSet.dat"
Dim RowNumber As Long
Call FindRow(RowNumber)
Call ModifyInstSet(MonitorSetFile, MonitorSetFile, RowNumber, "替换")

End Sub
Function FindRow(ByRef FindTheRow As Long)
Dim SmText As String
Dim ThisYqSetInfo() As String
Dim SearchHang As Long '查找待替换信息所在行

Open MonitorSetFile For Input As #1
     Do While Not EOF(1)
        Line Input #1, SmText
        'Form1.Print SmText
        SearchHang = SearchHang + 1
        ThisYqSetInfo = Split(SmText, " ")   '将行文本内容以空格为区分读进数组
        '判断文本中是否与4个文本框的内容一致,如果一致
           If ThisYqSetInfo(0) = Text1.Text And ThisYqSetInfo(1) = Text2.Text And ThisYqSetInfo(2) = Text3.Text And ThisYqSetInfo(3) = Text4.Text Then
                FindTheRow = SearchHang
           End If
      Loop
Close #1
'Dim FileNumber As Integer '文件号
'Dim FiInfo() As String

'计算源文件行数
'Dim FileHangSum As Integer    '文件行数
'Dim FileHangText As String    '文件某行文本
'Open MonitorSetFile For Input As #2
   ' Do While Not EOF(2)
      '  Line Input #2, FileHangText
       ' FileHangSum = FileHangSum + 1
    'Loop
'Close #2
'Print "a文件中共有:" & FileHangSum & "行"
End Function

Private Sub Command3_Click()
Dim DeleHang As String
MonitorSetFile = App.Path + "\InstMonitorSet.dat"
Dim RowNumber As Long
'调用4个文本框所在行函数
Call FindRow(RowNumber)
Call ModifyInstSet(MonitorSetFile, MonitorSetFile, RowNumber, "删除")
End Sub
Private Sub Command4_Click()
'插入
MonitorSetFile = App.Path + "\InstMonitorSet.dat"
Dim RowNumber As Long
Call FindRow(RowNumber)
Call ModifyInstSet(MonitorSetFile, MonitorSetFile, RowNumber, "插入")
End Sub

Private Sub Form_Load()
Command1.Caption = "写入文件"
Command2.Caption = "替换某行"
Command1.Caption = "删除某行"
Command1.Caption = "插入某行"
End Sub
将下面的代码拷贝到标准模块中:

'删除、替换文件中一行,或者插入内容到文本中某一行
Public Function ModifyInstSet(strSourceFile As String, strTargetFile As String, intRow As Long, CommandCode As String)
'strSourceFile  原始文件完整名
'strTargetFile  生成新文件的完整名
'intRow         操作的行数
   Dim Filenum         As Integer
   Dim FileContents    As String
   Dim FileInfo()      As String
   Dim ThI               As Integer
   Dim ReplaceContent As String  '要替换的文本
   
   '取出源文件行数,按照回车换行来分隔成数组
   Filenum = FreeFile
   Open strSourceFile For Binary As #Filenum
       FileContents = Space(LOF(Filenum))
       Get #Filenum, , FileContents
   Close Filenum
   FileInfo = Split(FileContents, vbCrLf)
   '如果文件已存在则删除原文件
   Filenum = FreeFile
   If Dir(strTargetFile, vbNormal) <> "" Then
       Kill strTargetFile
   End If
   
   
'替换指定行
If CommandCode = "替换" Then
   ReplaceContent = Form1.Text1.Text + " " + Form1.Text2.Text + " " + Form1.Text3.Text + " " + Form1.Text4.Text + " " + Form1.Text5.Text
   '替换一行代码块
   Open strTargetFile For Append As #Filenum
       '循环每一行
       For ThI = 0 To UBound(FileInfo) - 1
           If ThI = intRow - 1 Then
               Print #Filenum, ReplaceContent '替换的行
           Else
               Print #Filenum, FileInfo(ThI)  '保留原来的行
           End If
       Next
   Close #Filenum
   MsgBox "替换完毕"

'删除指定行
ElseIf CommandCode = "删除" Then
 '删除一行代码块
   Open strTargetFile For Append As #Filenum
       '循环每一行
       For ThI = 0 To UBound(FileInfo) - 1
           If ThI <> intRow - 1 Then
               Print #Filenum, FileInfo(ThI)
           End If
       Next
   Close #Filenum
      MsgBox "删除完毕"
'插入指定行
ElseIf CommandCode = "插入" Then

   Open strTargetFile For Append As #Filenum
   InsertContent = Form1.Text1.Text + " " + Form1.Text2.Text + " " + Form1.Text3.Text + " " + Form1.Text4.Text + " " + Form1.Text5.Text
   
       '循环每一行
       For i = 0 To UBound(FileInfo) - 1
           If i = intRow - 1 Then
               Print #Filenum, InsertContent
               Print #Filenum, FileInfo(i)           '保留原来的行,位置后移一位
           End If
       Next
   Close #Filenum
MsgBox "插入完毕"
   
   
End If

End Function



  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
RAR 是一个让你在命令行模式中管理压缩文件的控制台应用。RAR 提供压缩、加 密、数据恢复和许多其它此手册中描述的其它功能。 RAR 只支持 RAR 格式压缩文件,它默认有 .rar 扩展名。不支持ZIP 和其他格 式。即使创建压缩文件时指定了 .zip 扩展名,它仍然是 RAR 格式的。Windows 用户 可以 WinRAR,它支持更多的压缩文件类型,包括 RAR 和 ZIP 格式。 WinRAR 提供了图形用户界面和命令行模式。虽然控制台 RAR 和图形界面 WinRAR 有相似的命令行语法,但是它们还有有一些不同。所以推荐使用此 rar.txt 手册用于 控制台 RAR(rar.exe 在 Windows 版本的情况下),winrar.chm 是图形界面 WinRAR (winrar.exe) 的帮助文件。 配置文件 ~~~~~~~~ Unix 版本的 RAR 从用户的 home 或 /etc 目录中的 .rarrc 文件读取配置文件信息 (存储在 HOME 环境变量中) Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ 可以通过建立"RAR"环境变量来添加默认参数到命令行中. 例如,在 Unix 中,下列命令行可以被添加到你的配置中: RAR='-s -md1024' export RAR RAR 将使用这个字符串作为命令行的默认参数,并将使用 1024KB 字典大小来创建 “固实”压缩文件。 RAR 控制选项使用下列优先级: 命名行开关 最高优先级 在 RAR 变量中的开关 低优先级 保存在配置文件中的开关 最低优先级 日志文件 ~~~~~~~~ 如果在命令行或配置文件中指定开关 -ilog ,RAR 将会把处理压缩文件中遇到的错误 等写到日志文件中。读取开关 -ilog 描述获得更多信息。 固实压缩的文件列表 - rarfiles.lst ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是 ';'. 在 Windows 中,这个文件应该放在 RAR 所在的或 %APPDATA%\WinRAR 目录中, 在 Unix 中- 放在用户的 home 目录或在 /etc 中。 提高压缩率和操作速度的提示: - 在压缩文件中,小文件应该被组织在一起; - 频繁被处理的文件应该放在开始的位置。 普通的掩码越靠近顶端优先权就越高,但是这个规则存在例外。如果 rarfiles.lst 包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~~~~~~~~~ 语法 RAR [ - ] [ ] [ ] [ ] 描述 命令行选项 (命令和开关) 提供了使用 RAR 创建和管理压缩文件的控制方法。命 令是一个字符串(或单个的字母),命令 RAR 去执行一个相应的操作。开关被用来 改变 RAR 执行操作的方法。其它参数是压缩文件名和被压缩的文件或要从压缩文件 中被解压文件。 列表文件是一个包括处理的文件名的纯文本文件。第一列应该以文件名开始。可以 在//字符后添加注释。例如,你可以创建包含下列字符串的 backup.lst: c:\work\doc\*.txt //备份文本文档 c:\work\image\*.bmp //备份图片 c:\
资源简介 基于磁盘的文本编辑 -文档大小不受限制,即使是数兆字节的文件也只占用最小限度内存 -可同时打开和显示多个文档 -列模式编辑!!!插入列/删除/减切/添加序列 -拖放编译 -文件排序(包括删除重复文件,忽略大小写,升序,降序) -100,000 单词拼写检查器 -句法高亮显示-可配置,为 C/C++, VB, HTML 和 Java预配置 -在特定列以硬回车自动换行 -在现有文档的光标位置插入文件文件管理器支持拖放功能 -可配置工具栏 -分隔栏窗口 -插入和叠印模式用于编辑 -多层次撤消和恢复 -UltraEdit 兼容 Windows 3.x CUA -查找和替换——按下 shift 键后,允许选择插入符和查找目标之间的文本,可替换选定区域内的所有内容 -文件内查找,文件替换 -转到行号/分页符 -显示器和打印机字体选择。(支持所有安装的字体,包括 TRUE-TYPE 字体) -打印支持页眉、页脚、页边距和分页 -自动行缩近 -制表符设置 -支持自动换行 -十六进制编辑器——允许编辑任何二进制文件——支持十六进制剪切、复制和粘贴 -十六进制字符的插入删除 -十六进制查找、替换和全部替换 -书签 -同时多窗口编辑 -全面的宏支持,包括保存和加载 -上下文相关帮助 -在原文件目录内自动备份生成的文件,扩展名为(.BAK) -UltraEdit 在每次使用时均保持其屏幕位置 -行和列号显示(可禁用行号的显示) -用鼠标右键可弹出菜单 -文本可切换大小写首字符大写 -UNIX/MAC 到 DOS 转换 -DOS 到 UNIX 转换 -自动检测 UNIX/MAC 文件 -自动换行模式转换到CR/LF's 允许用硬回车将自动换行写入文件 -CR/LF's 转换到自动换行(从文件删除 CR/LF's) -支持模板 -代码折叠、、
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值