用vb怎么实现两个文件内容的比较啊?

时间:2022-07-21 10:10:10
例如:我现在有两个文件一个是a.txt里面内容是system ,另一个是b.txt内容也是system,a.txt 文件是在c:盘 b.txt文件是在d:盘,那么怎么比较判断两个文件的内容是相同的啊?

27 个解决方案

#1


如果不知道里面都有什么,就用2进制度文件,比较通用

先看长度,最后挨个比较字节是否一致,只要有一个字节不一致即可跳出

#2


shell "cmd /c fc c:\a.txt,d:\b.txt"

#3


ZOU_SEAFARER(^_^2005NET^_^) 用vb代码怎么写啊?

#4


假如不同 你要些什么信息? 把不同的地方都列出来?

#5


还是只报告第一个不同的位置

#6


如果需要知道发生了哪些变化用字节比较就不太适合了

#7


假如不同,给个提示就可以了,或是更高级些,把不同的内容显示出来?

#8


给你个只能判断是否相同的
Private Function FileComp() As Boolean
  Dim a() As Byte, b() As Byte, lofa As Long, lofb As Long
  Dim i As Long, fa As Integer, fb As Integer, t
  
  fa = FreeFile
  Open "c:\a.txt" For Binary As #fa
  fb = FreeFile
  Open "c:\b.txt" For Binary As #fb
  
  lofa = LOF(fa)
  lofb = LOF(fb)
  ReDim a(lofa - 1)
  ReDim b(lofb - 1)
  
  If lofa <> lofb Then
    FileComp = False
    Exit Function
  End If
  
  Get #fa, , a
  Get #fb, , b
  t = StrComp(a, b)
  If (t <> 0) Or IsNull(t) Then
    FileComp = False
  Else
    FileComp = True
  End If
End Function

Private Sub Command1_Click()
  Print FileComp
End Sub

#9


ayalicer(小刀惋心) ----如果我把b.txt内容放到程序里面,也就是一个数组里面,又怎么比较呢?

#10


BYTE数组和字符串 基本是通用

#11


如果你要把数组内容 显示在textbox 的控件中 
text1.text= strconv(b,vbUnicode)

#12


用二进制方法打开文件,读进量个BYTE数组中,然后一个循环比较就知道是否相同了.任何文件包括EXE文件都可以这样做.

#13


如果单纯比较是否相同,最快的方法是用MD5进行比较.

#14


楼上的提醒了我,记得DOS里面似乎有个命令叫COMPARE的

#15


CRC校验

#16


CRC校验 可以给个代码例子吗?

#17


我来学习

#18


只比较文件是否相同,
干脆首先比较文件的属性。
然后,直接用open filename for #nfile as input打开
一句一句当字符串比较,
这样比二进制打开比较来得快些吧

#19


LS有个错误
open filename for #nfile as input
-->
open filename for input as #nfile

#20


看你要比较后返回什么,如果仅比较是否完全相同,CRC运算呀。

#21


在DOS下用fc比较,输出重定向到c.txt
fc a.txt b.txt>>c.txt

#22


头条的热闹我是一定要凑的啦,哈哈哈哈

#23


比较是否完全相同,CRC运算怎么写?

#24


有没有人气了

#25


看不懂

#26


有问题请先GOOGLE,BAIDU

#27


我也想了解,谢谢LZ.

#1


如果不知道里面都有什么,就用2进制度文件,比较通用

先看长度,最后挨个比较字节是否一致,只要有一个字节不一致即可跳出

#2


shell "cmd /c fc c:\a.txt,d:\b.txt"

#3


ZOU_SEAFARER(^_^2005NET^_^) 用vb代码怎么写啊?

#4


假如不同 你要些什么信息? 把不同的地方都列出来?

#5


还是只报告第一个不同的位置

#6


如果需要知道发生了哪些变化用字节比较就不太适合了

#7


假如不同,给个提示就可以了,或是更高级些,把不同的内容显示出来?

#8


给你个只能判断是否相同的
Private Function FileComp() As Boolean
  Dim a() As Byte, b() As Byte, lofa As Long, lofb As Long
  Dim i As Long, fa As Integer, fb As Integer, t
  
  fa = FreeFile
  Open "c:\a.txt" For Binary As #fa
  fb = FreeFile
  Open "c:\b.txt" For Binary As #fb
  
  lofa = LOF(fa)
  lofb = LOF(fb)
  ReDim a(lofa - 1)
  ReDim b(lofb - 1)
  
  If lofa <> lofb Then
    FileComp = False
    Exit Function
  End If
  
  Get #fa, , a
  Get #fb, , b
  t = StrComp(a, b)
  If (t <> 0) Or IsNull(t) Then
    FileComp = False
  Else
    FileComp = True
  End If
End Function

Private Sub Command1_Click()
  Print FileComp
End Sub

#9


ayalicer(小刀惋心) ----如果我把b.txt内容放到程序里面,也就是一个数组里面,又怎么比较呢?

#10


BYTE数组和字符串 基本是通用

#11


如果你要把数组内容 显示在textbox 的控件中 
text1.text= strconv(b,vbUnicode)

#12


用二进制方法打开文件,读进量个BYTE数组中,然后一个循环比较就知道是否相同了.任何文件包括EXE文件都可以这样做.

#13


如果单纯比较是否相同,最快的方法是用MD5进行比较.

#14


楼上的提醒了我,记得DOS里面似乎有个命令叫COMPARE的

#15


CRC校验

#16


CRC校验 可以给个代码例子吗?

#17


我来学习

#18


只比较文件是否相同,
干脆首先比较文件的属性。
然后,直接用open filename for #nfile as input打开
一句一句当字符串比较,
这样比二进制打开比较来得快些吧

#19


LS有个错误
open filename for #nfile as input
-->
open filename for input as #nfile

#20


看你要比较后返回什么,如果仅比较是否完全相同,CRC运算呀。

#21


在DOS下用fc比较,输出重定向到c.txt
fc a.txt b.txt>>c.txt

#22


头条的热闹我是一定要凑的啦,哈哈哈哈

#23


比较是否完全相同,CRC运算怎么写?

#24


有没有人气了

#25


看不懂

#26


有问题请先GOOGLE,BAIDU

#27


我也想了解,谢谢LZ.