![]() |
Int64 zerlegen und zusammenbauen
Hi,
Ich würde gerne ein Int64 in seine 8 Bytes zerlegen... Nur bräuchte man dafür sowas wie HiInteger... Ab Integer ist das ja kein Problem mehr (HiWord,HiByte)... Und das ganze muss natürlich wieder zusammensetzbar sein.. Gruß Neutral General |
Re: Int64 zerlegen und zusammenbauen
AFAIK gibt es ein Int64def -record oder so ähnlich... ich muss mal nachsehn
Edit: Kannst du aber auch selber machen:
Delphi-Quellcode:
TInt64def = record
case Integer of 0: ( Int64val: Int64); 1: ( LowInt, HighInt: Cardinal); 2: ( Word1, Word2, Word3, Word4: Word); 3: ( Byte1,Byte2, ... ,Byte8: Byte); end; end; |
Re: Int64 zerlegen und zusammenbauen
Es gäbe da noch:
shl shr mod div und zur Not kannst du auch mit 2 pinteger auf die int64 variable zugreifen. Edit: Die Not:
Delphi-Quellcode:
Ich hoffe, das war jetzt richtig rum.
function HighDWord(value:int64):DWord; stdcall;
var int:pcardinal; begin int:=@value; inc(int); result:=int^; end; function LowDWord(value:int64):DWord; stdcall; var int:pcardinal; begin int:=@value; result:=int^; end; |
Re: Int64 zerlegen und zusammenbauen
Na mach dir ein variantes Record das aus einem Array von 8 Bytes und einem Int64 besteht.
|
Re: Int64 zerlegen und zusammenbauen
Hier mal eine einfache Lösung (ähnlich der von cruiser):
Delphi-Quellcode:
Ein Edit und ein Memo auf dem Form. Code ins OnChange vom Edit.
procedure TForm1.Edit1Change(Sender: TObject);
type T64 = packed record case Tag: Byte of 0: (I64: Int64); 1: (B64: array[0..7] of Byte); end; var B: Byte; T: T64; begin try Memo1.Clear; T.I64 := StrToInt64(Edit1.Text); for B := Low(T.B64) to High(T.B64) do Memo1.Lines.Add(IntToHex(T.B64[B], 2)); except // end; end; ...:cat:... |
Re: Int64 zerlegen und zusammenbauen
Hi,
Danke für die Antworten.. Das gefällt mir doch schonmal.. :) vergesst das was eben hier stand... so ein "packed" kann schon Wunder wirken :mrgreen: Gruß Neutral General |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 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