Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks
Autor
Nachricht
tr4st
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 486

Zwei Dateien miteinander vergleichen
Verfasst am: 17.04.2008, 10:30

Beschreibung:
Diese Funktion vergleicht zwei Dateien miteinander über ihren MD5 Hash.

Funktion:
Code:
Private Function CompareFiles(ByVal ParamArray Files() As String) As Int32<br /><br />        Dim f(1) As System.IO.Stream<br />        Dim n As Integer<br />        Try<br />            For n = 0 To 1<br />                f(n) = System.IO.File.OpenRead(Files(n))<br />            Next<br /><br />            Dim csp As New _ <br />System.Security.Cryptography.MD5CryptoServiceProvider<br />            Dim FirstFile As Byte() = csp.ComputeHash(f(0))<br />            Dim SecondFile As Byte() = csp.ComputeHash(f(1))<br />            For n = 0 To 1<br />                f(n).Close()<br />            Next<br />            Dim bc1 As String = BitConverter.ToString(FirstFile)<br />            Dim bc2 As String = BitConverter.ToString(SecondFile)<br />            If bc1 = bc2 Then<br />                'Beide Dateien sind gleich<br />                Return 1<br />            Else<br />                'Es bestehen Unterschiede in den Dateien<br />                Return 0<br />            End If<br />        Catch ex As Exception<br />            MessageBox.Show(ex.Message, "Info")<br />            Return -1<br />        End Try<br /><br />End Function

Beispiel:
Code:
If CompareFiles("c:test.txt", "c:test.txt") = 0 Then<br />            MessageBox.Show("Die Dateien sind unterschiedlich!")<br />ElseIf CompareFiles("c:test.txt", "c:test.txt") = 1 Then<br />            MessageBox.Show("Die Dateien sind gleich!")<br />ElseIf CompareFiles("c:test.txt", "c:test.txt") = -1 Then<br />            MessageBox.Show("Es ist ein Fehler aufgetreten!")<br />End If

_________________
 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 06.05.2008, 21:49

Ich hätte jetzt zwar auf nen boolschen Rückgabewert gesetzt, und die Schleifen weggelassen. Ist aber eigentlich egal, da man hier nicht mehr viel rausholen kann.
 
tr4st
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 486


Verfasst am: 06.05.2008, 21:55

Nunja ob ich nun Boolean zurück gebe oder Int32 kommt im Prinzip auf das selbe heraus.
_________________


 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 06.05.2008, 22:02


Naja, allein vom Speicherverbrauch wäre Boolean idealer, aber da die meisten Rechner sowieso 32Bit CPUs haben, macht Integer sogar mehr Sinn. Muss man sich ja auch erst bei einigen Aufrufen mehr Gedanken machen
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks

Tags: dateien miteinander, zwei dateien, vergleichen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1039 30.10.2009, 11:26
Keine neuen Beiträge IntStr()funktion 1177 11.10.2007, 08:49
Keine neuen Beiträge TopMost Funktion unter DirectX 921 27.07.2007, 10:48
Keine neuen Beiträge Wie Funktion nutzen ? 1101 29.06.2007, 20:59
Keine neuen Beiträge update funktion einbauen 1341 28.01.2007, 23:11
 



[ Time: 0.2077s ][ Queries: 93 (0.0224s) ][ GZIP on - Debug on ]