Veröffentlicht 12. November 200321 j Hallo, ich möchte den Inhalt von zwei Dateien miteinander vergleichen, wie geht das? Ich hab versucht die beiden Dateien auf zwei Strings zu übergeben und danach die String's (==) zu vergleichen. Das Ergebnis: string ist nicht gleich string2 --> es werden die beiden Wörter verglichen und nicht wie ich dachte der ausgelesene Inhalt.
12. November 200321 j Am einfachsten ist es wenn du die beiden Dateien zeichenweise ausliest und die beiden Zeichen direkt miteinander vergleichst.
12. November 200321 j Was ist denn das gewünschte Ergebnis des Vergleichs? Einfach nur die Aussage "gleich" oder "nicht gleich"?
12. November 200321 j Hallo, vergleichst Du in C strings (char *), dann bezieht sich der Vergleich auf die Pointer, nicht auf den "Inhalt", also den eigentlich string. Diese kannst Du mit der Funktion "strcmp()" vergleichen. Alternativ kannst Du auch - wie oben vorgeschlagen - Byteweise einlesen und diese Vergleichen (ist aber unter Umständen ziemlich ineffizient). Wie Du vergleichst hängt auch davon ab, was Du für ein Ergebnis erwartest. Geht es nur um die generelle Aussage "gleich" oder "ungleich" gibt es unter Umständen auch noch andere Möglichkeiten, bzw. Optimierungsmaßnahmen (beispielsweise erstmal die Länge der Dateien vergleichen). Nic
15. November 200321 j 2 Files vergleichen ? Wenns darum geht ob byte für byte identisch ist: #include <iostream> #include <iterator> #include <fstream> using namespace std; int main() { fstream datei1("t:\\test1.txt",ios::binary|ios::in); fstream datei2("t:\\test2.txt",ios::binary|ios::in); istreambuf_iterator<char> begin1(datei1); istreambuf_iterator<char> begin2(datei2); istreambuf_iterator<char> ende; cout<<equal(begin1,ende,begin2); } [/PHP]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.