AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung beim Schreiben in der Registry

Ein Thema von Amalkotey · begonnen am 16. Jul 2021 · letzter Beitrag vom 19. Aug 2021
Antwort Antwort
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#1

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 2. Aug 2021, 16:23
Ich hätte jetzt schwören können, dass der Compiler mit Optimierung
Code:
if a=true then
genau so behandelt wie
Code:
if a then
Aber es kommt was anderes raus:
c.PNG

Code:
if a<>false then
ist wie
Code:
if a then
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott

Geändert von generic ( 2. Aug 2021 um 16:44 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 2. Aug 2021, 16:46
Oh, jetzt bin ich baff. Ist die Optimierung aus? Oder so schlecht?
Nachtrag: liegt wohl daran, dass True so definiert ist: type Boolean = (False, True); True hat dann den Ordinalwert 1 und ist eben nicht immer not False.

Geändert von freimatz ( 3. Aug 2021 um 07:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
692 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 2. Aug 2021, 17:59
Aber es kommt was anderes raus:
Anhang 54226
So schön einfach kann man sich Probleme einhandeln. Das sollte sich jeder von uns ausdrucken und unters Kopfkissen legen!
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.314 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 2. Aug 2021, 18:12
if B then

entspricht "logisch" einem

if B <> False then
aber in Real ist Letzeres natürlich ein cmp al,$00; jz $********

In Worten:
"du bist irgendein Mensch"
gegen
"du bist genau dieser Mensch"

Delphi-Quellcode:
var B: Boolean;

B := Boolean(2);

if B then Beep; // if Ord(B) <> 0 then
if not B then {Kein}Beep; // if Ord(B) = 0 then
if B = True then {Kein}Beep;
if B = False then {Kein}Beep;
if B = Boolean(2) then Beep;
Boolean und ByteBool sind 1 Byte groß, nicht 1 Bit, also haben 1*False und 255*True, aber die Konstante "True" entspricht nur genau einem der vielen True's.
Und beim LongBool sind es sogar über 4 Milliarden "True".

Boolean: True = $01 aka +1
ByteBool: True = $FF aka -1
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Aug 2021 um 19:00 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 2. Aug 2021, 18:28
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 3. Aug 2021, 07:43
Auch von mir ein für die Erklärung.
Wer jedoch so programmiert, dass das eine Rolle spielt:
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.159 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 3. Aug 2021, 08:15
@generic

CodeReviews finde ich eine tolle Sache, gerne mehr davon.
Ich hatte mir das Exercism.io angesehen, das läuft auch irrgendwie darauf hinaus sich verschiedenste Lösungen anzusehen.
https://en.delphipraxis.net/topic/53...#comment-46137

Ist aber leider beim Review etwas umständlich, und ausserdem für Anfänger gedacht.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:45 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 by Thomas Breitkreuz