Rubrik: Variablen/Strings · Array/ArrayList | VB-Versionen: VB2005, VB2008 | 26.01.09 |
Prüfen, ob zwei Byte-Arrays identisch sind Eine kleine Funktion, die prüft, ob die Inhalte zweier Byte-Arrays identisch sind. | ||
Autor: Dieter Otter | Bewertung: | Views: 12.923 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Nachfolgend stellen wir Ihnen eine kleine Funktion vor, mit der sich prüfen lässt, ob zwei Byte-Arrays identisch sind.
Die Funktion vergleicht zunächst die Größe der beiden übergebenen Arrays. Unterscheiden sich die Größen kann der Inhalt nicht identisch sein, andernfalls wird innerhalb einer Schleife jedes einzelne Byte verglichen. Die Funktion wird hierbei vorzeitig beendet, sobald sich zwei Bytes unterscheiden.
''' <summary> ''' Vergleicht zwei Byte-Arrays und prüft ob diese identisch sind ''' </summary> ''' <param name="array1">Byte-Array 1</param> ''' <param name="array2">Byte-Array 2</param> ''' <returns>True, wenn die Arrays identisch sind, andernfalls False</returns> Public Function ByteArrayEqual(ByVal array1() As Byte, ByVal array2() As Byte) As Boolean ' zunächst die Größe der beiden Arrays vergleichen If array1.Length <> array2.Length Then ' Größe der beiden Arrays ist unterschiedlich ' Von daher können die Arrays nicht identisch sein! Return False End If For i As Integer = 0 To array1.Length - 1 If Not (array1(i) = array2(i)) Then ' Byte-Element sind unterschiedlich! Return False End If Next ' Byte-Arrays sind identisch Return True End Function
Anwendungsbeispiel:
Es soll geprüft werden, ob der Inhalt zweier Dateien identisch ist.
' Inhalt der Dateien in ein Byte-Array einlesen Dim array1() As Byte = My.Computer.FileSystem.ReadAllBytes("Datei1") Dim array2() As Byte = My.Computer.FileSystem.ReadAllBytes("Datei2") If ByteArrayEqual(array1, array2) Then MsgBox("Die Inhalte der beiden Dateien sind identisch!") Else MsgBox("Die Inhalte der beiden Dateien sind NICHT identisch!") End If