AGB  ·  Datenschutz  ·  Impressum  







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

Aufbau eines variablen Records

Ein Thema von 3_of_8 · begonnen am 18. Jan 2007 · letzter Beitrag vom 19. Jan 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#11

Re: Aufbau eines variablen Records

  Alt 19. Jan 2007, 06:56
Zitat von Muetze1:
Cardinal? 1? Ich weiss nicht was du meinst. Wie kommst du auf 1 Byte? Meinst du den Variablennamen?
Neein... In meinem Beispiel oben! Da fängt der String an der Stelle 1 im Speicher an und das ist was im Pointer steht... Wie komst du bitte auf den variabelnamen??
[quote="3_of_8"]Das glaube ich nicht. Der Cardinal '5' steht garantiert NICHT als 4 Bytes (0, 0, 0, 5) im Speicher, sondern als (5, 0, 0, 0). Das nennt sich "Little Endian-Format".[/qote]
Ja, ich weiss, was LittleEndian ist... Und es gibt auch BigEndian und es ist für das Beispiel doch auch egal... Geht mir doch nur ums Prinzip...
Zitat von Muetze1:
Dass 's' in deinem Beispiel den Wert 1 hat, halte ich in Delphi für sehr, sehr unwahrscheinlich. Ein leerer String ist ein Pointer mit dem Wert 0, aber 1? Glaube ich nicht.
Natürlich ist das unwahrscheinlich. Das war ja auch nur ein BEISPIEL!
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: Aufbau eines variablen Records

  Alt 19. Jan 2007, 08:51
Zitat von yankee:
Zitat von Muetze1:
Cardinal? 1? Ich weiss nicht was du meinst. Wie kommst du auf 1 Byte? Meinst du den Variablennamen?
Neein... In meinem Beispiel oben! Da fängt der String an der Stelle 1 im Speicher an und das ist was im Pointer steht... Wie komst du bitte auf den variabelnamen??
Weil das das einzige war, was soweit mit der Grösse von 1 übereinstimmte. Und das bei einem (Wide/Ansi)String das erste Zeichen beim indizierten Zugriff bei [1] liegt, hat nichts mit der Anordnung im Speicher zu tun. Bei Wide/AnsiString wird der Zugriff auf [1] auf Offset von 0 gelegt. Das ist nur zur Kompatibilität zum ShortString noch vorhanden und sagt überhaupt nichts über die Anordnung im Speicher aus.
  Mit Zitat antworten Zitat
shmia

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

Re: Aufbau eines variablen Records

  Alt 19. Jan 2007, 09:30
Das ganze Gefrickle mit "dynamischen Records" ist IMHO der ganz falsche Weg.
Wenn man stattdessen einfach Klassen verwendet steigt zwar der Overhead für den
Rechner etwas an (ca. 20% mehr Speicherplatzbedarf, ca. 10% mehr Rechenzeit),
aber auf der anderen Seite ergeben sich völlig neue Möglichkeiten.

Man nehme einfach eine Basisklasse (abgeleitet von TPersistent) und erzeuge pro Variante
eine weitere Klasse.
Dann nehme man TObjectList (als Ersatz für ein Array) und stopfe Objekte der Klassen hinein.
Zum Auslesen muss man einfach mit dem Operator IS prüfen, zu welcher Klasse das betrachtete Objekt
gehört und dann den Cast-Operator anwenden.

==> kein Rumgemache mit Zeigern, keine schmutzigen Tricks, alles ist sauber, klar und Objektorientiert
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:22 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