Neue Version: Programm verhält sich deutlich anders

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Neue Version: Programm verhält sich deutlich anders

Beitrag von mschnell »

Ich habe ein Lazarus-Programm im Einsatz , das Dateien vergleicht.

Das habe ich nun mit der neuen Lazarus-Version übersetzt.

Sowohl die alte als auch die neue Version verhalten sich in Windows und in Linux jeweils identisch.

Allerdings bekomme ich deutliche Unterschiede zwischen der alten und der neuen:

1) Die Sortierung der Dateinamen ist anders:
Ich schreibe die zu jeweils einer Datei gehörigen Datensätze in eine TList und sortiere diese dann mit "sort" und einer eigenen Compare-Funktion, die den Dateiamen-Vergleich mit AnsiCompareStr macht): die Behandlung der Gross/Kleinschreibung ist anders: alt: "c""D"

2) Die Behandling des DateiDatums ist anders: Ich mache ein Integer aus dem Dateidatum durch "d:= FileDateToDateTime(rec.Time) * SecsPerDay;". Hierbei ist bei manchen (vielleicht 1%) der Dateien bei der neuen Version die die Datei-Zeit eine Sekunde kleiner.

3) md5-digest.
Bei ganz wenigen Dateien ergibt sich ein anderes MD5.


Any comments,

-Michael

marcov
Beiträge: 1103
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von marcov »

mschnell hat geschrieben:Ich habe ein Lazarus-Programm im Einsatz , das Dateien vergleicht.

Das habe ich nun mit der neuen Lazarus-Version übersetzt.

Sowohl die alte als auch die neue Version verhalten sich in Windows und in Linux jeweils identisch.

Allerdings bekomme ich deutliche Unterschiede zwischen der alten und der neuen:
Aber sind die Unterschiede falsch oder nicht?
3) md5-digest.
Bei ganz wenigen Dateien ergibt sich ein anderes MD5.
Der ist mir bekannt:

http://bugs.freepascal.org/view.php?id=10704" onclick="window.open(this.href);return false;
http://bugs.freepascal.org/view.php?id=9903" onclick="window.open(this.href);return false;

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von Euklid »

mschnell hat geschrieben:alt: "c""D"
> entspricht immerhin der Reihenfolge der Buchstaben in einer Ascii-Tabelle. Macht zumindest in diesem Zusammenhang Sinn.

Euklid

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von mschnell »

[quote="marcov"]Aber sind die Unterschiede falsch oder nicht?[quote]
Das ist mir noch nicht klar (der Verwendbarkeit des Programmes tut es keinen Abbruch, nur wenn beide Varianten gemeinsam genutzt werden, gibt es Reibungsverluste da die Verwaltungsdatei nicht kompatibel ist):

1) Sortierung mi AnsiCompareStr: alt scheint uppercase oder lowercase vor dem Vergleich zu machen, neu nicht. Wie ist das denn gewollt / dokumentiert ?
2) das ist anscheinend eine veränderte Rundung. Kann man da von falsch reden ?
3) md5-digest. entweder alt oder neu muss ja wohl falsch sein Ich schaue mir die Referenzen an, die Du angegeben hast. Herzlichen Dank dafür!... Scheint also ein behobener Fehler zu sein. Sehr gut !

-Michael

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von Euklid »

mschnell hat geschrieben: 3) md5-digest. entweder alt oder neu muss ja wohl falsch sein
Müsste sich ja leicht testen lassen, indem man die Summe mit einer Auswahl externer Programme überprüft.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von monta »

Wenns 'mein' md5-Fehler war bei sehr großen Dateien, ist die neue Version auf jeden fall die richtige, hab ich schon überprüft.
Johannes

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von mschnell »

monta hat geschrieben:Wenns 'mein' md5-Fehler war bei sehr großen Dateien, ist die neue Version auf jeden Fall die richtige, hab ich schon überprüft.
Hmm, so groß waren die Dateien nicht. Ich vertraue 'mal darauf, dass es jetzt stimmt :).

-Michael

marcov
Beiträge: 1103
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Neue Version: Programm verhält sich deutlich anders

Beitrag von marcov »

monta hat geschrieben:Wenns 'mein' md5-Fehler war bei sehr großen Dateien, ist die neue Version auf jeden fall die richtige, hab ich schon überprüft.
Ich glaub es gab auch eine bei Dateien die exact ein Vielvalt der Buffersize waren. (32 oder 64k onder so)

Antworten