AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Hexadezimale Zahl in Registry speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Hexadezimale Zahl in Registry speichern

Ein Thema von Pentium 80486 · begonnen am 8. Mai 2012 · letzter Beitrag vom 9. Mai 2012
Antwort Antwort
Seite 1 von 2  1 2      
Pentium 80486
(Gast)

n/a Beiträge
 
#1

Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 18:17
Guten Abend allerseits,

ich versuche gerade verzweifelt eine Zahl 1031 als hexadezimale Zahl in die Registry zu schreiben.
Mit WriteInteger('Test', StrToInt(IntToHex(1031, 1))); wird lediglich 7 gespeichert, aber nicht die erhoffte Zahl 407.

Woran kann das liegen?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 18:34
An der Eins?
z.B. wäre "1031,4" brauchbar.
aber verate uns doch einmal was diese Hinundherkonvertierung soll:
StrToInt(IntToHex(1031, 1)); Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Pentium 80486
(Gast)

n/a Beiträge
 
#3

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 18:54
WriteInteger verlangt einen Integer und IntToHex liefert einen String. Daher StrToInt.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 18:57
und warum schreibst Du nicht einfach 1031....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Pentium 80486
(Gast)

n/a Beiträge
 
#5

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 18:58
Es geht hier genau gesagt um die Sprach-IDs.

Deutsch hat da die 407.
Durch folgende Funktion erhalte ich dann 1031, dezimal nehme ich an. Ich brauchre aber die 407.

Delphi-Quellcode:
var
  txt : string;
  langid : word;
begin
  langid := MAKELANGID(LANG_SPANISH,
    SUBLANG_SPANISH_DOMINICAN_REPUBLIC);

  SetLength (txt,MAX_PATH);
  SetLength (txt,
    VerLanguageName(langid,@txt[1],length(txt)));
  ShowMessage(txt);
end;
http://www.delphipraxis.net/46643-post.html
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 19:04
Folgende Varianten stehen zur Auswahl
Delphi-Quellcode:
WriteInteger('Test', 1031); // A
WriteInteger('Test', $407); // B
WriteString('Test', Format('%x', [1031]); // C
Variante A und B machen genau das Gleiche.
Variante C schreiben den Wert 1031 als hexdezimalen string.

Ach ja, du sollst uns nicht erzählen was du über deinen eigenen Code denkst sondern
sag uns lieber den kompletten Key (z.B. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\W32Time\Config)
innerhalb der Registry und warum und weshalb du dort etwas reinschreiben möchtest.
Und natürlich auch welchen Datentyp der Schlüssel in der Registry hat.
Andreas
  Mit Zitat antworten Zitat
Pentium 80486
(Gast)

n/a Beiträge
 
#7

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 19:09
Tut mir leid, habe ich wohl vergessen.

Ist aber auch nicht weiter wichtig.
Die Variable, welche zuvor 1031 entheilt, hatte den Datentyp ShortInt. Ein Wechsel zu Integer hat Abhilfe geschaffen. Warum jedoch verstehe ich nicht.
Die sind doch beide unsigned
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 19:10
BTW: Es gibt weder dezimale noch oktale noch hexadezimale Zahlen, sondern nur die entsprechende Darstellung einer Zahl.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Hexadezimale Zahl in Registry speichern

  Alt 8. Mai 2012, 21:32
Ich sehe immer noch nicht das eigentliche Problem:

Delphi-Quellcode:
  ShowMessage('$' + IntToHex(1031, 0) ); //Ergibt $407
  ShowMessage('$' + IntToHex(1031, 2) ); //Ergibt $407
  ShowMessage('$' + IntToHex(1031, 4) ); //Ergibt $0407
  ShowMessage('$' + IntToHex(1031, 6) ); //Ergibt $000407
  ShowMessage('$' + IntToHex(1031, 8) ); //Ergibt $00000407

  //WriteString('Test', IntToHex(1031, 1)); //als String speichern, nicht Integer
Edit: Ok, ich sehe das Problem war schon gelöst
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: Hexadezimale Zahl in Registry speichern

  Alt 9. Mai 2012, 08:03
ShortInt ist nicht unsigned und geht von -128..127. Dass da keine 1031 reinpasst, sollte klar sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 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