Neue Version: Programm verhält sich deutlich anders
-
- 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
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
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
-
- 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
Aber sind die Unterschiede falsch oder nicht?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:
Der ist mir bekannt:3) md5-digest.
Bei ganz wenigen Dateien ergibt sich ein anderes MD5.
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;
-
- 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
> entspricht immerhin der Reihenfolge der Buchstaben in einer Ascii-Tabelle. Macht zumindest in diesem Zusammenhang Sinn.mschnell hat geschrieben:alt: "c""D"
Euklid
-
- 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
[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
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
-
- 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
Müsste sich ja leicht testen lassen, indem man die Summe mit einer Auswahl externer Programme überprüft.mschnell hat geschrieben: 3) md5-digest. entweder alt oder neu muss ja wohl falsch sein
-
- 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
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
-
- 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
Hmm, so groß waren die Dateien nicht. Ich vertraue 'mal darauf, dass es jetzt stimmtmonta 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.

-Michael
-
- 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
Ich glaub es gab auch eine bei Dateien die exact ein Vielvalt der Buffersize waren. (32 oder 64k onder so)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.