![]() |
2 Zahlen in einer?
Hi
ich weis meine Frage ist eventuell etwas seltsam aber: Kann man 2 beliebige Integer Zahlen in einer Loginteger so speichern das man sie hinterher auch wieder "auseinender" bekommt? |
Re: 2 Zahlen in einer?
Hallo,
ich denke das wird gehen! Erst als String zusammenketten und dann in LongInt wandeln. Wenn die Zahlen immer gleich die gleiche Länge haben, dann kannst du sie ja wieder als String auseinanderschneiden und dann in Integer wandeln. Ansonsten musst du mindestens von einer Zahl die Länge speichern, die andere Länge der Zahl lässt sich ja dann errechnen. |
Re: 2 Zahlen in einer?
Hallo,
schau dir mal HiWord und LoWord an. |
Re: 2 Zahlen in einer?
erstmal danke für deine antwort.
deine lösung würde gehen wenn ich weis wie groß die zahl ist bzw wieviel ziffern beide haben aber das weis ich nicht! das ist ja das problem ich weis ja nicht wielang sie sind! und mit 0en auffüllen kann ich ja nit (zur info die 2 zahlen sind im bereich 0-1000) |
Re: 2 Zahlen in einer?
Hallo,
und wenn du die die Länge der ersten Zahl entweder als erstes oder als letztes mit speicherst?? Diese Zahl musst du nur dann auslesen und abschneiden, bevor du die eigentlichen Zahlen auslesen kannst. |
Re: 2 Zahlen in einer?
gute idee so mach ichs!! danke :thumb:
|
Re: 2 Zahlen in einer?
Integer und Longint sind das selbe. Aber klar kannst du das. Wenn du z.B. zwei Bytes in einem Word speichern willst, geht das so:
Delphi-Quellcode:
Ah, eine Frage noch: Wieso willst du das machen?
type
TTwoBytes = Array[0..1] of Byte; function BytesToWord(Byte1, Byte2: Byte): Word; begin Result := Byte2 + Byte1 shl 8; end; function WordToBytes(lWord: Word): TTwoBytes; begin Result[0] := Byte(lWord shr 8); Result[1] := Byte(lWord); end; |
Re: 2 Zahlen in einer?
wenn man den Tipp von static_cast beachtet gehts sogar noch einfacher
Delphi-Quellcode:
var Longint0 : Longint;
begin Longint0 := LoWord(StrToInt(e1.Text)) or (LoWord(StrToInt(e2.Text)) shl 16); e3.Text := IntToStr(LoWord(Longint0)); e4.Text := IntToStr(HiWord(Longint0)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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