Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CRC Berechnen (https://www.delphipraxis.net/137674-crc-berechnen.html)

RedShakal 26. Jul 2009 01:09


CRC Berechnen
 
Hallo, ich möchte in mein Programm einen "Map Downloader" für ein altes Spiel integrieren. In der Theorie stelle ich mir das so vor:

1. Client sucht welche Maps vorhanden sind
2. Client verbindet zu http host -> fragt Mapliste z.b. aus Textdatei ab
3. Client vergleicht ob eine Map aktueller als die installierte
4. Client läd die datei herunter.

Das Problem dabei ist: wie vergleicht man am besten ob 2 Files identisch sind? bei der Größe ist es problematisch. Wenn man 2x die Selbe Map compiled, verändert sich lediglich eine "versionskennung". die ist so klein, das man nicht mit Dateigröße vergleichen Arbeiten kann.

Gibt es da evtl eine Bessere variante?

MisterNiceGuy 26. Jul 2009 01:55

Re: CRC Berechnen
 
Japp gibts :) Im Internet bist du bestimmt schonmal über den MD5-Algorithmus gestolpert. Damit ist es möglich 2 Dateien relativ(!) schnell miteinander zu vergleichen.

Falls du mit .NET arbeitest kann dir folgender Artikel helfen: http://www.delphipraxis.net/internal...ct.php?t=53095

Meflin 26. Jul 2009 08:37

Re: CRC Berechnen
 
Du hast das Stichwort doch schon im Titel?!

Erstes Ergebnis von Bei Google suchenDelphi CRC: http://www.umnicom.de/Software/Delph...Utilities.html

(BTW, falls das nicht klar sein sollte: CRC ist ein Verfahren zur Prüfsummenberechnung...)

himitsu 26. Jul 2009 08:58

Re: CRC Berechnen
 
also in deiner Textdatei auf'm Server neben dem Dateinamen noch den Hash der Datei ablegen
und mit dem der Datei auf dem Rechner vergleichen.
(nicht daß jetzt wer auf die Idee kommt erst die Datei runterzuladen und lokal den Hash zu bilden ... dann könnte man auch gleich direkt vergleichen)

Khabarakh 26. Jul 2009 11:17

Re: CRC Berechnen
 
Man könnte auch ganz abwegig auf Client und Server eine Versionsnummer ablegen und die vergleichen, aber das wäre wahrscheinlich zu langweilig :stupid: ...

DeddyH 26. Jul 2009 11:18

Re: CRC Berechnen
 
*Pfhh*, für echte Männer viel zu trivial :lol:

himitsu 26. Jul 2009 11:21

Re: CRC Berechnen
 
genau ... und dann vergißt mal wer die Versionsnummer zu erhöhen :roll:

Khabarakh 26. Jul 2009 11:39

Re: CRC Berechnen
 
Man könnte sich sogar ganz auf eingebaute Mechanismen wie If-Modified-Since/304 verlassen, Verzählen ausgeschlossen ;) . Wenn der Server dabei mitspielt, bräuchte man auf dessen Seite nicht einmal eigenen Code.

RedShakal 30. Jul 2009 00:40

Re: CRC Berechnen
 
man kann die versionsnummer nicht vergleichen weil es nicht direkt eine versionsnummer ist es ist einfach in die map mit integriert und nicht ohne weiteres auslesbar

Blup 31. Jul 2009 12:36

Re: CRC Berechnen
 
Dann erstelle CRC-Prüfsummen der Dateien.
Auf dem Server ein PHP-Script das die CRC der gewünschten Datei(en) ermittelt.
Noch eine Datenbank die für Dateiname/CRC das Erstellungsdatum, Version und optional weitere Informationen zurückgibt (und beim Upload diese Infos aufnimmt).
Jeweils eine Anfrage für die Datei/CRC auf Client und Server, vergleichen und fertig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz