如何用VB将文本本件里的相同行删除

如何用VB将文本本件里的相同行删除,第1张

Private Sub Command1_Click()

Dim i%, j%, k%

Dim a$(5000)

j = 1

Open AppPath + "\1txt" For Input As #1

Open AppPath + "\2txt" For Output As #2

Line Input #1, a(1)

Print #2, a(1)

Do

j = j + 1

Line Input #1, a(j)

k = 0

For i = 1 To j - 1

If a(j) = a(i) Then k = 1: Exit For

Next i

If k = 0 Then Print #2, a(j)

Loop While Not EOF(1)

Close #2

Close #1

End Sub

注:1txt 原文本 2txt 结果

Private Function crazy0qwer()

Dim i As Long, j As Long, flag As Boolean

Dim a As Long, b As Long

a = UsedRangeRowsCount '已用的行数

b = UsedRangeColumnsCount '已用的列数

For i = 1 To a '1 到 最后一行

For j = 1 To b '1 到最后一列

If Cells(i, j) = "小计" Then

Rows(i)Delete '找到 删除之

i = i - 1 '由于删除后下面的补上了,所以行号要减一,否则补上的这行没有查找

End If

Next

Next

End Function

给你一段简单易懂的,且结果中没有多余的空行:

Private Sub Command1_Click()

'读取文件内容

Dim LoadBytes() As Byte

Open "E:\1txt" For Binary As #1

ReDim LoadBytes(1 To LOF(1))

Get #1, , LoadBytes

Close #1

arr = Split(StrConv(LoadBytes, vbUnicode), vbCrLf)

'查找第一次出现S17000的位置

For i1 = 0 To UBound(arr)

If InStr(arr(i1), "S17000") > 0 Then Exit For

Next

'从第一次出现S17000的位置的下一个位置开始

'找到S17000,从当前向前查4个变为Chr(27)即ESC键,此字符在文本文件中是不可能出现的

For i2 = i1 + 1 To UBound(arr)

If InStr(arr(i2), "S17000") > 0 Then

For j = i2 - 4 To i2

If j >= i1 Then arr(j) = Chr(27)

Next

If j <= UBound(arr) Then arr(j) = ""

End If

Next

Open "E:\2txt" For Output As #1

Print #1, Replace(Join(arr, vbCrLf), Chr(27) & vbCrLf, "")

Close #1

End Sub

Dim s As String

Open "31029600txt" For Input As #1

Open "31029600_1txt" For Output As #2

Do Until EOF(1)

Line Input #1, s

If Val(s) <> 0 Then Print #2, s

Loop

Close #2

Close #1

不太明白你的题目

如果你是在程序中,用鼠标选中了多行文本中的一些文本(包括多行的),然后只需要在代码中添加一行代码就行了,比如:

Private Sub Command1_Click()

Text1SelText = ""

End Sub

如果你是需要程序自动来删除文本框中的一些内容,如果你知道内容,可以使用Replace,来删除,如果你知道的是位置,可以设定文本框的Text1SelStart,Text1SelLength,然后再用上面的代码来删除它们

补充:

1将文本框的内容添加到另一文本中

Private Sub Command1_Click()

Open "c:\1txt" For Append As #1

Print #1, text1

Close #1

End Sub

如果想添加多次:

Private Sub Command1_Click()

Open "c:\1txt" For Append As #1

for i=1 to 10

Print #1, text1

next

Close #1

End Sub

2同上,是追加方式,原文本会被保留

3

print #1,text1 & chr(9) & text2

就能将文本框1和文本框2中的内容用TAB分隔写入了

至于 每行4个数字 我不知道你的数据格式,可以使用FOR来循环添加

i mod 4=0时,认为是一行完成,可以添加一个vbcrlf

以上就是关于如何用VB将文本本件里的相同行删除全部的内容,包括:如何用VB将文本本件里的相同行删除、请教:宏 VB excel 特定行 删除、VB怎么查找字符,删除掉指定的行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9731533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存