Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Union Übersetzung nach Pascal (https://www.delphipraxis.net/88246-union-uebersetzung-nach-pascal.html)

himitsu 13. Mär 2007 10:14

Re: Union Übersetzung nach Pascal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Selbst erfunden?


Definiert is UInt64 seit Delphi 6 in der Unit System, oder besser gesagt als CompilerMagic im Compiler.

gammatester 13. Mär 2007 12:40

Re: Union Übersetzung nach Pascal
 
Zitat:

Zitat von himitsu
Selbst erfunden?


Definiert is UInt64 seit Delphi 6 in der Unit System, oder besser gesagt als CompilerMagic im Compiler.

Interessante Unit in Anhang. Allerdings ist zumindest der Kommentar in dem selbsterfundenen Zitat irreführend, denn auch

Delphi-Quellcode:
   // und D1 bis D5:
   Type DWord64 = Type System.Int64;
   LargeWord = Type System.Int64;
ist erst ab Delphi 4 übersetzbar (vorher gab's kein int64).

Gruß Gammmatester

Robert Marquardt 13. Mär 2007 12:59

Re: Union Übersetzung nach Pascal
 
Das muss .net sein. Nicht mal mein Turbo Delphi kennt UInt64 in System.pas. Es kommt kein Tooltip. Definitiv das Gleiche mit Delphi 6.

himitsu 13. Mär 2007 13:05

Re: Union Übersetzung nach Pascal
 
Int64 gab's auch schon vorher, nur kennt der Compiler es da unter 'nem anderem Namen ... wenn mir nur einfiele welchen :|

Die Unit selber ist zumindestens bis D4 vollständig kompatibel ... darunter konnte ich noch nicht so testen.

Hab zwar noch ein D1, aber dieses laß ich einfach mal außer Acht. :angel2:


D6 hab ich selber nicht, aber D5 kennt es definitiv noch nicht und D7 kennt es.
Hatte es anfangs als "Ab Dlphi 7" definiert, dann wurde mir von jemandem gesagt daß es schon in D6 existiere :gruebel:


Ich versuch mal den compilerinternen Namen nochmals rauszufinden *meld mich dann*


[add]
Zitat:

Das muss .net sein. Nicht
also die Unit ist rein Win32 ... das ganze .Net-Zeugs versuch ich noch zu ignorieren.

Hawkeye219 13. Mär 2007 15:00

Re: Union Übersetzung nach Pascal
 
Hallo Leute,

der Typ UInt64 ist zwar in Delphi definiert, er wurde aber nie offiziell von Borland dokumentiert. Der Grund könnte sein, daß nicht alle Operationen fehlerfrei ablaufen (getestet mit BDS 2006):

Delphi-Quellcode:
var
  u : System.UInt64;
begin
  u := $ffffffffffffffff;
  u := u div 10;
  ShowMessage(IntToStr(u));
end;
Gruß Hawkeye

gammatester 13. Mär 2007 15:21

Re: Union Übersetzung nach Pascal
 
Zitat:

Zitat von Hawkeye219
Hallo Leute,

der Typ UInt64 ist zwar in Delphi definiert, er wurde aber nie offiziell von Borland dokumentiert. Der Grund könnte sein, daß nicht alle Operationen fehlerfrei ablaufen

Kann aber nicht der Hauptgrund sein! Die ganze 64-Bit-Arithemtik ist ziemlich buggy, zB behaupten Delphi 4 bis 10 (2006), daß ein Quadrat negativ sein kann:

Delphi-Quellcode:
program sqr_babe;
 {$apptype console}
var
  Babe: int64;
begin
  Babe:=$Babe;
  writeln(sqr(Babe)<0);
end.

himitsu 13. Mär 2007 15:26

Re: Union Übersetzung nach Pascal
 
@Hawkeye219:
dieses liegt z.B. in D7 daran, daß die 64-Bit-Unsigned-Operationen nicht auf die entsprechenden (vorhandenen Funktionen verweisen, sondern dafür "einfach" die SignedFunktionen verwendet werden.

hmm, aber ging das nicht in BDS 2005 mal :gruebel:
Hatte doch damals 'nen Test diesbezüglich angeleiert ... mal sehn wo der sich hier rumtreibt.

Na ja, zumindest IntToStr sollte bei dir mit UInt64 laufen?


Ansonsten nutze ich selber für div/mul immernoch "eigene" Funktionen dafür ... und wenn das im BDS06 wieder nicht geht, dann isses ja gut, daß ich noch nicht umgestellt hab :)

himitsu 30. Mär 2007 14:28

Re: Union Übersetzung nach Pascal
 
Ach ja, warum die Partition nicht stimmen ... hier mal was aus'm PSDK.
Zitat:

DRIVE_LAYOUT_INFORMATION

PartitionCount
The number of partitions on a drive.
On disks with the MBR layout, this value is always a multiple of 4. Any partitions that are unused have a partition type of PARTITION_ENTRY_UNUSED.
Ich wußte doch es geht ... man muß halt nur auf mehr achten, als nur auf PartitionCount :roll:


In den Partitionstabellen (MBR) auf der Platte sind immer 4 Plätze und wo/ob da was drinsteht is sozusagen egal.

Bei mehr als 4 Partionen, werden dann einfach weitere Tabellen angelegt, welche dann als "erweiterte Partition" in einer vorhandenen Tabelle eingetragen sind.
(darum sind auch nur maximal 4 primäre Partitionen möglich)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr.
Seite 3 von 3     123   

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