Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hex nach Octal (https://www.delphipraxis.net/2000-hex-nach-octal.html)

Mike_C 2. Jan 2003 14:25


Hex nach Octal
 
Hi (bin neu hier in Forum :? )

Ich hab's bisher hier nicht gefunden. Meine Frage ist:

Kann ich einen Hex-Wert in das Octalsystem umwandeln? Wenn ja, hat da jemand ein Beispiel dafür?

:bounce1: goes :firejump:

sakura 2. Jan 2003 14:39

Bitte einfach Testen, dass ist frei vom Kopf
Delphi-Quellcode:
procedure HexToOct(HexValue: string): string;
var
  Cur: Byte;
  Int: DWORD;
begin
  // erst einmal in einen Integer umwandeln
  StrToInt('$' + HexValue);
  // Ergebnis löschen
  Result := '';
  repeat
    Cur := Int and $07;
    Result := IntToStr(Cur) + Result;
    Int := Int shr 3;
  until Int = 0;
end;

Sharky 2. Jan 2003 14:42

Hai Mike_C,

ersteinmal willkommen in diesem Bord.

Ich habe im swissdelphicenter eine Funktion gefunden die Zahlen von einem beliebigen Zahlensystem in ein anderes (unterschiedliche Basis) umwandelt.

Mirilin 2. Jan 2003 14:43

Dass es geht, ist klar.

An der Funktion arbeite ich noch.

Falls sie niemand vorher reinschreibt, schreibe ich sie, wenn ich fertig bin.

Edit : das hat man nun davon, wenn man nicht ständig auf 'Aktualisieren' klickt.

Mike_C 2. Jan 2003 15:48

THX für eure Bemühungen.

Die Funktion von Sakura funzt, allerdings liefert sie andere Ergebnisse als der Rechner von Windows. (Hex: 25B sollte 1133 in Oct sein; bei sakuras Funktion ist Hex 25B = 4573714 in Oct).
Die andere Funktion, von swissdelphicenter kapier ich nicht. die funktionier auch nicht wirklich. Bei diesem Beispiel liefert sie einfach einen Fehler...

:witch: & :bounce1: go :firejump:

Greetz,
Mike_C :firejump:

Mike_C 2. Jan 2003 15:53

Nachtrag!

Sakuras Funktion hat nur den einen Fehler: Int wurde am Anfang nicht gesetzt.

Für alle die's interessiert, die Funktion sieht dann korrigiert so aus:

Code:
function HexToOct(HexValue: string): string;
var
  Cur: Byte;
  Int: DWORD;
begin
  // erst einmal in einen Integer umwandeln
  Int := StrToInt('$' + HexValue);
  // Ergebnis löschen
  Result := '';
  repeat
    Cur := Int and $07;
    Result := IntToStr(Cur) + Result;
    Int := Int shr 3;
  until Int = 0;

end;
Auf jeden Fall nochmal Danke!

8)

Mike_C

sakura 2. Jan 2003 16:13

*OOPS* :oops: *OOPS*

...:cat:...


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