Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Bits an String anfügen (https://www.delphipraxis.net/162311-bits-string-anfuegen.html)

Angel4585 17. Aug 2011 08:45

Delphi-Version: 2010

Bits an String anfügen
 
Hallöchen :)

ich möchte eine Zahl an einen String anfügen, allerdings nicht wie normal:
Delphi-Quellcode:
mystring := mystring+IntToStr(myzahl);

ich möchte die bits durch die die zahl dargestellt wird so wie sie sind an den string anfügen.
Pseudocode:
Delphi-Quellcode:
mystring := mystring + Chr(myzahl[0]) + Chr(myzahl[1]) + Chr(zahl[2])+... usw

Die Zahl ist vom Typ UInt64, wie mach ich das am besten?
Ich hab mir jetzt gedacht ich kann ja immer 8 Bits rausholen und dann in nen Character umwandeln und dranhängen, aber das sollte doch auch irgendwie eleganter gehen oder?

ChrisE 17. Aug 2011 08:56

AW: Bits an String anfügen
 
Hallo,

ich nehme an, dass Delphi-Referenz durchsuchenIntToHex nicht ganz das ist was du suchst, oder? Wäre ja keine Bit-Weisedarstellung.

Aber wenn du Hier im Forum suchenIntToBin suchst, findest du in der Richtung auch einiges.

Gruß, Chris

Neutral General 17. Aug 2011 09:04

AW: Bits an String anfügen
 
Hallo,

Ich hätte da was für dich. Weiß jetzt nicht ob das für dich eleganter ist:
Delphi-Quellcode:
procedure AddInt64ToString(var S: String; Val: Int64); inline;
var OldLen: Integer;
begin
  OldLen := Length(S);
  SetLength(S,OldLen+SizeOf(Int64) div SizeOf(Char));
  Move(Val,S[OldLen+1],SizeOf(Int64));
end;

procedure TForm1.FormCreate(Sender: TObject);
var n: Int64;
    Str: String;
begin
  n := $0074006C00650057;
  Str := 'Hallo ';

  AddInt64ToString(Str,n);

  Caption := Str;
end;

Angel4585 17. Aug 2011 09:13

AW: Bits an String anfügen
 
ChrisE:
Nein die generieren alle ja Strings die die Zahl selbst in einem anderen Format darstellen, also Hex oder Bin.
Diese werden dann als String zurückgegeben sodass aus der Zahl 15 dann zB der String F wird.
Zahl 15 hat den Binärwert: 00001111
String F = Integer 70 = Binärwert 01000110
String 00001111 = ... ka xD

Neutral General:
scheint zu funktionieren und sieht wesentlich besser aus als ich es gemacht hätte, danke! :thumb:

SirThornberry 17. Aug 2011 11:49

AW: Bits an String anfügen
 
@Neutral General: "div 2"? Für so etwas gibt es SizeOf ;-)

Neutral General 17. Aug 2011 11:57

AW: Bits an String anfügen
 
Oh du hast Recht! Ich werds grad korrigieren!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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