Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   den Inhalt eines Bytes in einem String darstellen (https://www.delphipraxis.net/119806-den-inhalt-eines-bytes-einem-string-darstellen.html)

BAMatze 1. Sep 2008 09:06


den Inhalt eines Bytes in einem String darstellen
 
Hallo an alle,

hab mal wieder eine Frage. Ich habe ein Byte (in diesem ist der Status eines elektrisch über Computer angesteuerten Verschiebetischs drin) und will mir dieses Byte in einem String darstellen lassen, da einige Positionen dieses Bytes für mich interessant sind.

Meine Frage nun ist, kann ich dieses Byte in möglichst einem String oder sonst irgendwie verarbeitbarer Variable umwandeln. Vieleicht gibt es auch eine Möglichkeit dieses Byte direkt zu bearbeiten.

Danke

DeddyH 1. Sep 2008 09:13

Re: den Inhalt eines Bytes in einem String darstellen
 
Meinst Du jetzt eine binäre Darstellung des Bytes?

Klaus01 1. Sep 2008 09:19

Re: den Inhalt eines Bytes in einem String darstellen
 
Guten Morgen,

wenn Dich nur einige Positionen des Bytes interessieren, würde ich
diese maskieren (und Verknüpfung) und damit weiterarbeiten.

Grüße
Klaus

BAMatze 1. Sep 2008 09:21

Re: den Inhalt eines Bytes in einem String darstellen
 
Ein Beispiel für das Byte wird angegeben als "04 02 00 03 02 00" da auch Zahlen von 2..4 erlaubt sind, kann es sich eigentlich nicht um eine binäre Darstellung handeln. Wobei ich bei der Anweisung für den Verschiebetisch sehr viele Fehler gefunden hab. Allerdings sind den einzelnen Positionen im Byte bestimme Informationen zu entnehmen die von 0..8 gecodet sind.

Also um zum Schluss zu kommen keine Binärdarstellung.

DeddyH 1. Sep 2008 09:29

Re: den Inhalt eines Bytes in einem String darstellen
 
Also, so eine merkwürdige Darstellung ist mir noch nicht untergekommen. Sicher, dass das wirklich nur ein Byte ist?

Klaus01 1. Sep 2008 09:31

Re: den Inhalt eines Bytes in einem String darstellen
 
Zitat:

Zitat von DeddyH
Also, so eine merkwürdige Darstellung ist mir noch nicht untergekommen. Sicher, dass das wirklich nur ein Byte ist?

Er meint sicherlich, dass das Byte diese Werte annehmen kann.

Grüße
Klaus

BAMatze 1. Sep 2008 10:10

Re: den Inhalt eines Bytes in einem String darstellen
 
Das kann sein, dass das Byte die Werte annehmen kann. Wie gesagt, die Beschriebung der Firmer zu diesem Pordukt ist leider nicht wirklich qualitativ und man muss mehr probieren, als dass man Antworten bekommt.

Codewalker 1. Sep 2008 10:31

Re: den Inhalt eines Bytes in einem String darstellen
 
Sicher, dass das der Inhalt des Bytes ist und du nicht zufällig die Speicheradresse des Bytes erwischt hast (die ja (meistens) 32-Bit - also 4 Byte groß ist)?

mschaefer 1. Sep 2008 10:33

Re: den Inhalt eines Bytes in einem String darstellen
 
Moin zusammen,

Delphi-Quellcode:

           function Byte2Str
           (MyByte  : byte)
                     : string;
           var
             i, n   : integer;
           begin
             result := '00000000';

             n := 128;
             for i := 1 to 8 do begin
               if MyByte >= n then begin
                  result[i] := '1';
                  Dec(MyByte, n);  {n=128;64;32;16;8;4;2;1}
               end;
               n := n div 2;
             end;
           end;
{OT: ... der Server klingelt, bin on tour ...}

Grüße // Martin

marabu 1. Sep 2008 11:18

Re: den Inhalt eines Bytes in einem String darstellen
 
Hallo,

natürlich kannst du die Bits eines Bytes recht einfach als Dualzahl sichtbar machen:

Delphi-Quellcode:
function StrToByte(const s: string): Byte;
var
  i: Integer;
begin
  Result := 0;
  for i := 1 to Length(s) do
    Result := Result shl 1 + Ord(s[i] = '1');
end;

function ByteToStr(b: Byte): string;
var
  i: Integer;
begin
  SetLength(Result, 8);
  for i := 0 to 7 do
    Result[8 - i] := Chr(Ord('0') + Ord(Odd(b shr i)));
end;
Mit IntToHex() erhältst du die hexadezimale Darstellung, aber das kann nicht dein Problem gewesen sein - oder doch?

Grüße vom marabu


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