网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月02日漏签0天
vb吧 关注:156,056贴子:1,166,187
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 10回复贴,共1页
<<返回vb吧
>0< 加载中...

怎么写代码,点击按钮时,删除123.txt中开头与text1.text的内容匹

  • 只看楼主
  • 收藏

  • 回复
  • linchenqian
  • 世界你好
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
点击按钮时,删除123.txt中开头与text1.text的内容匹配的一行
比如
123.TXT:
123123,aaa,1,123456,
123456,rrr,0
321321,eeet,2,444444,999999
-----------------------------------
text1.text=123456
-----------------------------------
按下按钮后
123。TXT:
123123,aaa,1,123456,
321321,eeet,2,444444,999999
-------------------------------
不是变成:
123123,aaa,1,123456,
321321,eeet,2,444444,999999
------------------------------------
达到这种效果,按钮怎么写?
高人赐教,附上说明,OTL


  • sunzhihuiustb
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先将txt文件的中所有内容读入字符串数组中,然后利用循环比较,找到后再将该行之前和之后的数组内容写回文件


2026-01-02 17:25:14
广告
不感兴趣
开通SVIP免广告
  • 16H
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'一个 CommandButton,一个 TextBox,文件路径请自定
Private Sub Command1_Click()
On Error GoTo Wr
    Dim By() As Byte, Str$, Lines$(), i!
    Open "C:\Documents and Settings\user\桌面\123.txt" For Binary As #1
        ReDim By(1 To LOF(1))
        Get #1, , By
    Close #1
    Str = StrConv(By(), vbUnicode)
    Lines = Split(Str, vbCrLf)
        For i = 0 To UBound(Lines)
            If InStr(1, Lines(i), ",") = 0 Then GoTo 1
            If Text1.Text = Split(Lines(i), ",")(0) Then Lines(i) = "Del": Exit For
1       Next
        If i = UBound(Lines) + 1 Then MsgBox "未找到符合条目!", 48, "提示": Exit Sub
    Str = ""
        For i = 0 To UBound(Lines)
            If Lines(i) <> "Del" Then Str = Str & Lines(i): _
                If i <> UBound(Lines) Then Str = Str & vbCrLf
        Next
    Open "C:\Documents and Settings\user\桌面\123.txt" For Output As #2
        Print #2, Str
    Close #2
    MsgBox "修改成功!", 64, "提示"
Exit Sub
Wr:
    MsgBox "运行时错误 'x'" & vbCrLf & vbCrLf & "指定文件格式不符", 48, "提示"
End Sub


  • 16H
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Private Sub Command1_Click()
On Error GoTo Wr
    Dim By() As Byte, Str$, Lines$(), i!
    Open "C:\Documents and Settings\user\桌面\123.txt" For Binary As #1
        ReDim By(1 To LOF(1))
        Get #1, , By
    Close #1
    Str = StrConv(By(), vbUnicode)
    Lines = Split(Str, vbCrLf)
        For i = 0 To UBound(Lines)
            If InStr(1, Lines(i), ",") <> 0 Then _
                If Text1.Text = Split(Lines(i), ",")(0) Then Lines(i) = "Del": Exit For
1       Next
        If i = UBound(Lines) + 1 Then MsgBox "未找到符合条目!", 48, "提示": Exit Sub
    Str = ""
        For i = 0 To UBound(Lines)
            If Lines(i) <> "Del" Then Str = Str & Lines(i): _
                If i <> UBound(Lines) Then Str = Str & vbCrLf
        Next
    Open "C:\Documents and Settings\user\桌面\123.txt" For Output As #2
        Print #2, Str
    Close #2
    MsgBox "修改成功!", 64, "提示"
Exit Sub
Wr:
    MsgBox "运行时错误 'x'" & vbCrLf & vbCrLf & "指定文件格式不符", 48, "提示"
End Sub


  • sunzhihuiustb
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不要用Instr函数判断,他需要与开头内容比较,用Left函数比较


  • zhijian01
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Private Function KillTXT(TXTfile As String, TXTkill As String) As Boolean
Dim FDAT() As Byte, FTXT As String, iTXT As Long, tmpTXT As String
If Dir(TXTfile) = "" Then '判断文件是否符合条件
  MsgBox "文件不能为空!", vbExclamation, ""
  Exit Function
ElseIf TXTkill = "" Then
  MsgBox "对比内容不能为空!", vbExclamation, ""
  Exit Function
End If
Open TXTfile For Binary As #1 '打开文件
  ReDim FDAT(FileLen(TXTfile) - 1)
  Get #1, , FDAT
Close #1
FTXT = StrConv(FDAT, vbUnicode) '转为Unicode
For iTXT = 1 To Len(FTXT) '开始寻找
  If Mid(FTXT, iTXT, Len(TXTkill)) = TXTkill Then '如果找到
    tmpTXT = Replace(FTXT, TXTkill, "", , 1) '开始替换为空
    Open TXTfile For Output As #1 '保存修改后的文件
      Print #1, tmpTXT
    Close #1
    KillTXT = True '表示已经修改
    Exit For '退出循环
  End If
Next
End Function


  • zhijian01
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼上函数的调用方法:
KillTXT "C:\01.TXT","123456"
也可加个判断:
If KillTXT("C:\01.TXT","123456") = True Then
  MsgBox "修改成功!"
Else
  MsgBox "没有字符需要修改!"
End If


  • 16H
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
貌似不大对……


2026-01-02 17:19:14
广告
不感兴趣
开通SVIP免广告
  • linchenqian
  • 世界你好
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
现在的人啊,太热心了~


  • cbm666
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Dim aa$, s
Private Sub Command1_Click()
   Open "c:\123.txt" For Input As #1
   aa = StrConv(InputB(LOF(1), 1), vbUnicode)
   Close #1
   s = Split(aa, vbNewLine)
   Open "c:\test.txt" For Output As #1
   For i = 0 To UBound(s)
      If Left(s(i), Len(Text1.Text)) <> Text1.Text Then Print #1, s(i)
   Next i
   Close #1
   MsgBox "ok"
End Sub
'*********** 如果你要留空行的话
Dim aa$, s
Private Sub Command1_Click()
   Open "c:\123.txt" For Input As #1
   aa = StrConv(InputB(LOF(1), 1), vbUnicode)
   Close #1
   s = Split(aa, vbNewLine)
   Open "c:\test.txt" For Output As #1
   For i = 0 To UBound(s)
      If Left(s(i), Len(Text1.Text)) <> Text1.Text Then
         Print #1, s(i)
      Else
         Print #1, ""
      End If
   Next i
   Close #1
   MsgBox "ok"
End Sub


  • 119.122.67.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Private Sub Command1_Click()
Open "c:\123.txt" For Input As #1
While Not EOF(1)
10    Line Input #1, oneline$
      If Left(oneline$, Len(Text1.Text)) = Text1.Text Then GoTo 10
      Text2.Text = Text2.Text & oneline$ & vbCrLf
Wend
Close #1
Open "c:\123.txt" For Output As #1
      Print #1, Text2.Text
Close #1
End Sub
Private Sub Form_Load()
'Text2.MultiLine = True
'Text2.Visible = False
Text1.Text = "123456"
Text2.Text = ""
End Sub


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 10回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示