Προς το περιεχόμενο

Έλεγχος αν τα περιεχομενα δυο αρχειων ειναι ιδια


geo1st487

Προτεινόμενες αναρτήσεις

Δημοσ.

οχι, εκτος και αν το μεγεθος των αρχειων ειναι συγκρισιμο με το μεγεθος του checksum. Αντιθετα, αν ενα τυπικο αρχειο ειναι μερικα Kb ή και Mb, ειναι πιο γρηγορο να συγκρινεις τα checksums που ειναι λιγα bytes. Μιλαμε για πολλα αρχεια τωρα ετσι;

 

PS. μιλαω θεωρητικα, σιγουρα εσυ εχεις ασχοληθει με το θεμα αλλα ο παραπανω συλλογισμος μου φαινεται λογικος.

  • Απαντ. 39
  • Δημ.
  • Τελ. απάντηση
Δημοσ.
οχι, εκτος και αν το μεγεθος των αρχειων ειναι συγκρισιμο με το μεγεθος του checksum. Αντιθετα, αν ενα τυπικο αρχειο ειναι μερικα Kb ή και Mb, ειναι πιο γρηγορο να συγκρινεις τα checksums που ειναι λιγα bytes. Μιλαμε για πολλα αρχεια τωρα ετσι;

 

ο παραπανω συλλογισμος μου φαινεται λογικος.

Εμένα δε μου φαίνεται καθόλου λογικός. Αν θες να το δεις στην πράξη, σύγκρινε το προγραμματάκι από κάτω με ένα αντίστοιχο που δουλεύει με checksums και κράτα χρόνο, σε ένα "πλούσιο" directory του δίσκου σου. ;)

 

Anyway, μην κολλήσουμε, ό,τι ήταν να ειπωθεί νομίζω ειπώθηκε. :-)

Δημοσ.

Θα συγκρινω μονο 2 αρχεια μεταξυ τους τα οποια θα ειναι το πολυ 20ΜΒ. Εχω χρησιμοποιησει checksum σε αρχεια 4, 5, 10, 25ΜΒ και δεν εκανε παραπανω απο 1 δευτερολεπτο για το καθε αρχειο. Με αυτους τους χρονους ειμαι ικανοποιημενος σε συνδιασμο με αξιοπιστια 99.9%. Αν δοκιμασω συγκριση byte προς byte δεν ξερω αν θα πετυχω τοσο χαμηλους χρονους.

Δημοσ.

για να συγκρινεις 2 αρχεια, θα εχεις χαμηλοτερο χρονο με byte-to-byte, ξερεις γιατι;

γιατι για να κανεις ενα checksum πρεπει να κανεις proccess ολα τα bytes σε καθε περιπτωση ΚΑΙ να τα συγκρινεις. Αντιθετα, στο byte-to-byte θα κανεις συγκριση μεχρι να βρεις ενα διαφορετικο byte οποτε και σταματας τη συγκριση. Δηλ, μπορει και απο το πρωτο byte να βρεις διαφορα οποτε τα αρχεια ειναι διαφορετικα. Συν του οτι στο byte-to-byte κανεις απλο ελεγχο ισοτητας που ειναι γρηγορη πραξη σε αντιθεση με τις αριθμητικες πραξεις που πρεπει να κανεις για να υπολογισεις το checksum.

Δημοσ.
...

 

Στο site της υπογραφής μου έχω φτιάξει από παλιά το "File Comparator" που λειτουργεί ακριβώς με αυτόν τον τρόπο. Βέβαια είναι σε C, όχι σε VB, οπότε δεν μπορώ να σε βοηθήσω σε κώδικα.

 

Το πρόγραμμα αυτό τι χρησιμοποιεί για το gui? Win32 API?

Δημοσ.
Ναι, απευθείας.

 

Γιαυτό είναι τόσο "πουπουλένιο" λοιπόν! Μπράβο σου, ωραία εφαρμογή. Να ρωτήσω: τα bindings του Win32 API είναι για C, C++ ή (το ίδιο εύκολα/άμεσα) και για τις δύο?

Δημοσ.

Είναι το ίδιο.

 

Υ.Γ. Αν έχεις κι άλλες ερωτήσεις δέχομαι ΠΜ για να μη λερώνουμε το topic. ;)

 

 

Το προγραμματάκι είναι μόνο το 1/10 από αυτά που έχω στο μυαλό μου, αλλά δεν είχα τον κατάλληλο χρόνο να σχοληθώ περισσσότερο μέχρι στιγμής. Θα φάει εξέλιξη κάποια στιγμή σίγουρα και θα μπουν νέα tabs και δυνατότητες...

 

Δημοσ.
Οπότε -να υποθέσω ότι- απλά προτιμάς την C από την C++? ;)

Ναι, συνήθως! Βέβαια θα προτιμούσα μια mixed κατάσταση με κλάσεις για το χειρισμό του GUI και κάποιες "περιφερειακές" λειτουργίες (σκέψου πως αυτό το προγραμματάκι έχει πάνω από 300kB κώδικα...). Άμα μεγαλώσει κι άλλο θα το γυρίσω εν μέρη (όχι στο αμιγώς λειτουργικό μέρος, εκεί δεν κάνω παραχωρήσεις) σε κλάσεις.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...