AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Variante Records, Strings und 32 bzw. 64 Bit
Thema durchsuchen
Ansicht
Themen-Optionen

Variante Records, Strings und 32 bzw. 64 Bit

Ein Thema von Codehunter · begonnen am 26. Nov 2013 · letzter Beitrag vom 27. Nov 2013
 
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Variante Records, Strings und 32 bzw. 64 Bit

  Alt 26. Nov 2013, 20:53
Gudn Namd

Zu später Stunde eine Frage zum Thema variante Records. Ich habe folgende Record-Definition:
Delphi-Quellcode:
  TVarStr = record
    case X: Boolean of
      TRUE:
      (
        Str: string[32];
      );
      FALSE:
      (
        P1: string[6];
        P2: string[6];
        P3: string[6];
        P4: string[6];
        P5: string[6];
        P6: string[2];
      );
  end;
Wenn ich dem Record dann einen Wert zuweise, etwa so:
Delphi-Quellcode:
var
  X: TVarStr;
begin
  X.Str:= '306E096DADF14AFDA5E4B22A17EC50D4';
end;
Dann erhalte ich bei folgendem Versuch:
Delphi-Quellcode:
var
  X: TVarStr;
begin
  X.Str:= '306E096DADF14AFDA5E4B22A17EC50D4';
  ShowMessage(X.P1);
end;
nicht etwa wie ich erwarten würde "306E09" als Anzeige, sondern "306E096DADF14AFDA5E4B22A17EC50D4", also den ganzen String mit 32 Zeichen. Wenn ich gleichermaßen auf X.P6 zugreife, lande ich vom Speicherzeiger her hinter dem String und bekomme Datenschrott von 32 Bytes Länge zurück. Interessanterweise scheint sich die Position des Zeigers in dem Fall auch noch unterschiedlich zu verschieben, je nachdem ob ich für 32 oder 64 Bit compiliere. Wo mache ich da jetzt den Denkfehler?

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
 


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:30 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