AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch XE8: Sinn von FixedInt, FixedUint, System.Hash
Thema durchsuchen
Ansicht
Themen-Optionen

XE8: Sinn von FixedInt, FixedUint, System.Hash

Ein Thema von gammatester · begonnen am 23. Apr 2015 · letzter Beitrag vom 23. Apr 2015
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#11

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 12:52
oder kann man FixedInt auch in älteren Delphis nutzen, ohne daß man wirklich jeden Scheiß immer erstmal selber definieren/ableiten muß?
Da die Zeitmaschine gerade kaputt ist, wirst du um eine Deklaration á la FixedInt = LongInt mit dem passendem IFDEF wohl nicht herumkommen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 13:27
Naja, das wars dan mit der vielversprochenden Abwärtskompatibilität von Delphi,
Ist es doch. Unter 32-Bit ändert sich nix.

Liegt halt an deinen Quellcode der nicht Aufwärtskompatible ist


oder kann man FixedInt auch in älteren Delphis nutzen, ohne daß man wirklich jeden Scheiß immer erstmal selber definieren/ableiten muß?
Mit Ifdef in eigene Basisunit und schon sollte es gehen. Mach ich z.B. mit Funktionen wie CharInSet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#13

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 14:32
Zusammengefasst also wie Folgt?


Wenn man einen Integer will, der 32 Bit ist, dann wird das schwerer, ohne sich den selber zu implementieren.

Vor 64-Bit-CPUs war Integer mal dynamisch und wurde danach statisch/eingefroren. Aber LongInt war wenigstens immer 32. NativeInt wurde als Ausgleich erfunden, den man davor aber nicht nutzen kann, weil ihn noch Keiner kennt und Emba keine Updates für ältere Delphi anbietet.

Seit Apfel64 ist LongInt, der eigentlich statisch ist, plötzlich dynamisch. Dafür gibt es nun FixedInt, den man davor natürlich nicht nutzen kann.



Auch Int32 gibt es noch nicht so lange, oder?
Und da Int32 doch per Definition ein LongInt ist, oder andersrum, müsste der Apfel den doch auch wachsen lassen?


Und FixedInt als Name ist auch nicht viel besser, denn auf was ist der denn aktuell fix? (jetzt noch 32 Bit)

Beim Integer hatten sich ja fast alle so "geeinigt", auch wenn ich es immernoch für einen Fehler halte. (aber annähernd nichtmal so schlimm wie LongInt)



Multiplattform und mehrere OS-Versionen kann man so "grundsätzlich" vergessen unterstützen zu wollen und muß für jede Plattform fast schon einen eigenen Code schreiben.
Oder alles selber machen und das ständig anpassen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (23. Apr 2015 um 14:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#14

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 17:20
Ich versteh die ganze Aufregung um diese LongInt Geschichte nicht. Benutzt halt Integer oder explizit Int32 und dann seid ihr bei 32bit auf jeder Platform.
Wer nen bisschen über den Delphi Tellerrand schaut, weiß, dass LongInt nunmal *NICHT* nur 32bit sein kann.

Wer mir nicht glaubt, kann ja mal in die Code completion gucken, wenn er LongInt oder Int32 tippt, worauf die mappen - huch auf Integer (*). Das ist nunmal der Basistyp, wenn man nun aber andere gemappte Types nutzt, dann hat man nunmal nen Problem, wenn die auf ner anderen Plattform anders gemappt sind.

Einzig die Entscheidung, komplett neue Typen für etwas zu erfinden, dass es schon gibt, erschließt sich mir nicht.
Außer sie wollen irgendwann Integer auch dynamisch machen Aber dann geh ich auch auf die Barrikade, denn dann wär das Chaos komplett.

(*) außer LongInt bei iOS64, der mappt nun auf Int64, Dankesbriefe an diejenigen, die sich den ISO Standard ausgedacht haben (siehe oben verlinkte Tabelle auf Wikipedia) und nicht immer alles Apple zuschieben, die Devs dort mussten auch in den sauren Apfel (*schenkelklopf*) beißen: siehe https://developer.apple.com/library/...pto64-Bit.html
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (23. Apr 2015 um 17:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#15

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 17:30
Ich versteh die ganze Aufregung um diese LongInt Geschichte nicht. Benutzt halt Integer oder explizit Int32 und dann seid ihr bei 32bit auf jeder Platform.
Vor ganz vielen Jahren kamen diese LongInts unter Delphi 1 (oder war es schon in Turbo Pasacal) rein, da dort ein Integer nur 16 Bit hatte. Im Laufe der Zeit konnte man das bis XE8 aber bequem umstellen. Allerdings finden sich solche Artefakte noch immer in manchen Bibliotheken, die nicht so gut gepflegt sind.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 17:50
Vor ganz vielen Jahren kamen diese LongInts unter Delphi 1 (oder war es schon in Turbo Pasacal) rein, da dort ein Integer nur 16 Bit hatte. Im Laufe der Zeit konnte man das bis XE8 aber bequem umstellen. Allerdings finden sich solche Artefakte noch immer in manchen Bibliotheken, die nicht so gut gepflegt sind.
Naja, das ist ja auch erst 20 Jahre her. Gott sei Dank, musste Delphi 1 keine Lochkarten verarbeiten, sonst müssten die vermutlich auch noch unterstützt werden...

Neue Hash-Unit
In System.Hash soll es 3 (in Worten DREI) Funktionen geben:Bob Jenkins, MD5, SHA1!

Zu Bob Jenkins (was genau das auch immer ist, Wiki listet 4 verschiedene) kann ich nichts sagen.
Vermutlich war das einfach nur eine Aufräumarbeit, da an zunehmend mehr unterschiedlichen Stellen Hash Algos benutzt werden und oftmals erneut implementiert wurden/werden mussten. Der Bob Jenkins Hash wurde seit Delphi 2009 für die Comparer aus Generics.Defaults benutzt und wurde vermutlich nur der Ordnung halber dort hinein verschoben.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (23. Apr 2015 um 17:56 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#17

AW: XE8: Sinn von FixedInt, FixedUint, System.Hash

  Alt 23. Apr 2015, 20:06
da ich neben Delphi auch weiter C/C++ bis herunter zu 8Bit MicroControlern schreibe, verwende ich von von C/C++ gewohnt auch in Delphi von Anfang an möglichst nur eigene Typen, welche auf ewig eine feste Größe(Bitanzahl) haben.

BYTE (oder "neumodisch" UINT8)
WORD (oder "neumodisch" UINT16)
DWORD (oder "neumodisch" UINT32)
QWORD (oder "neumodisch" UINT64)

bzw.
INT8
INT16
INT32
INT64

Ich glaube, UINT128 & INT128 werde ich wohl noch erleben (müssen).


Integer oder Cardinal oder was es da aktuell sonst noch von Delphi oder manchen C-Compilern gibt, das wird per IFDEF zentral&einmalig passend zugeordnet.
Dann noch immer nur "packed records"... so sind und bleiben Quelltexte und Daten portabel, plattform- & sprachunabhängig
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz