Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » dateiinhalte vergleichen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
06.11.2003, 17:07 Uhr
geissbock



gibt es eine einfache möglichkeit den inhalt zweier txt-files zu vergleichen? oder muss ich alles auslesen lassen und dann vergleichen?

mfg geissbock
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.11.2003, 17:21 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


weiss nicht ob es das gibt
hab mir mal früher was geschrieben gehabt keine ahnung obs wirklich funktioniert

C++:
bool dateivergleich(char* filename1, char*filename2){
bool rv=false;
FILE *fp1=fopen(filename1,"rb");
FILE *fp2=fopen(filename2,"rb");
while(!feof(fp1) && !feof(fp2) && fgetc(fp1)==fgetc(fp2));
if(feof(fp1) && feof(fp2)) rv=true;
fclose(fp1);
fclose(fp2);
return rv;
}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.11.2003, 23:30 Uhr
Pablo
Supertux
(Operator)


Ich habe folgendes getestet und hat funktioniert. Allerding prüft auf gleiche Zeichen, gleiche Länge, usw. Wenn datei1 so ausehen würde "Ich bin A" und datei2 "Ich bin A ", mit dem Leerzeichen, würde das Programm sagen, sie sind nicht gleich.

C++:
#include <stdio.h>

int f(int ch)
{
   printf("\tch ist zur Zeit = %d\n", ch);
   return ch;
}

int comp(const char* file1, const char* file2)
{
    int ch=1;
    FILE* f1, *f2;
    f1 = fopen(file1, "r");
    f2 = fopen(file2, "r");
    while(!feof(f1) && !feof(f2) && (ch=ch&fgetc(f1)==fgetc(f2)));
    fclose(f1);
    fclose(f2);
    return ch;
}

int main(int argc, char** argv)
{
    if (argc!=3) {
        fprintf(stderr, "usage: %s file1 file2\n", argv[0]);
        return 1;
    }
    printf("Die Dateien %s und %s sind%sgleich\n", argv[1],argv[2], comp(argv[1],argv[2]) ? " " : " nicht ");
    return 0;
}



--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.11.2003, 09:29 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich würde, bevor ich irgendwas anderes tu, die Länge der Dateien vergleichen, weil unterschiedlich lange Dateien naturgemäß unterschiedlichen Inhalt haben werden. Im Anschluß würde ich die Dateien nicht Zeichenweise, sondern blöockweise einlesen, was IMHO deutlich schneller gehen sollte.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.11.2003, 09:33 Uhr
Pablo
Supertux
(Operator)


Das ist keine schlechte Idee, ich habe ebenfalls daran gedacht, leider weiß ich nicht, wie ich die Länge einer Datei herausfinden kann.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.11.2003, 09:45 Uhr
virtual
Sexiest Bit alive
(Operator)


man stat, fstat, oder lstat. Was halt passend ist.
Unter Windows _stat.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.11.2003, 09:56 Uhr
geissbock



mal ne dumme frage: was ist IMHO???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.11.2003, 10:01 Uhr
Pablo
Supertux
(Operator)


Das habe ich auch gefragt. In My Humman Opinion, wenn ich mich nicht irre.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
07.11.2003, 10:13 Uhr
virtual
Sexiest Bit alive
(Operator)


Fast: Siehe jargon file
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
07.11.2003, 10:15 Uhr
geissbock



na gut. IMHO ein wenig weit hergeholt. aber egal. man lehrnt nie aus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: