AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Record-Struktur zur Laufzeit ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Record-Struktur zur Laufzeit ändern?

Ein Thema von alcaeus · begonnen am 12. Sep 2004 · letzter Beitrag vom 13. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Record-Struktur zur Laufzeit ändern?

  Alt 12. Sep 2004, 23:16
Hi!

Eine Frage: Kann man die Struktur eines Records zur Laufzeit ändern?
Wenn ja, wie ist dies möglich?

Thanx and Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Record-Struktur zur Laufzeit ändern?

  Alt 12. Sep 2004, 23:40
Hast du mich nicht das eben im ICQ gefragt?

Nein, geht nicht. Das einzigeste wäre ein variant Record, aber da sind geht es nur mit den Datentypen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Record-Struktur zur Laufzeit ändern?

  Alt 12. Sep 2004, 23:55
Hi Luckie,

nein, ich habe die Frage nicht im ICQ gestellt.
Danke für deine Antwort.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Record-Struktur zur Laufzeit ändern?

  Alt 12. Sep 2004, 23:56
Moin alcaeus,

was hast Du denn vor?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Record-Struktur zur Laufzeit ändern?

  Alt 13. Sep 2004, 00:00
Hi Christian,

zum Beispiel Variablen hinzufügen, entfernen, typen ändern etc.
Gibts vielleicht eine Möglichkeit, dies mit einem Array unbestimmten Typs zu lösen?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Record-Struktur zur Laufzeit ändern?

  Alt 13. Sep 2004, 00:33
Mit einem Variant Array innerhalb des Records könnte man es mal versuchen. Ist aber mehr so ein Schuss ins Blaue von mir. Aber für "sauber" würde ich das nicht halten, das sagt mir jetzt so mein Gefühl. Records sind nun mal statische Datentypen und man sollte sie nicht vergewalltigen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Record-Struktur zur Laufzeit ändern?

  Alt 13. Sep 2004, 06:56
Zitat von alcaeus:
... zum Beispiel Variablen hinzufügen, entfernen, typen ändern ...
Wie soll'n das gehn?
Es ist doch dann eigentlich unmöglich darauf uzugreifen.

Du kannst dir wohl höchstens ein bissl Arbeitsspeicher reservieren und dann mit Pointern arbeiten, wellche du z.B. in 'nen Array of Pointer verwaltest, oder so ...

Zitat von alcaeus:
... typen ändern ...
Da könntest du mit Variant's was machen - als Datantyp Variant nehmen und den Zugriff so, wie du ihn dann benötigst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Record-Struktur zur Laufzeit ändern?

  Alt 13. Sep 2004, 07:00
Ein Grund warum es eigentlich nicht gehen kann: Es wird Speicher für den Record alloziiert. Nur, wie viel soll alloziiert werden, wenn die Größe des Records nicht konstant ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
HeinerGrimm

Registriert seit: 13. Sep 2004
5 Beiträge
 
#9

Re: Record-Struktur zur Laufzeit ändern?

  Alt 13. Sep 2004, 15:37
Das stimmt nur teilweise. Ein Record kann durchaus eine nicht definierte Datensatzgröße haben, z.B. wenn er normale Strings enthält. In diesem Fall enthält der Record-Datensatz einen Pointer auf den String an Stelle der String-Characters.

Eine Art Record, der zur Laufzeit geändert werden kann, ist das TIniFile (noch besser TMemIniFile). Wenn Rechenzeit nicht das Riesenproblem ist, dann kann man ein TMemIniFile ungefähr wie einen variablen Record verwenden (Vorteil: Wenn UpdateFile; bei Programmende ausgeführt wird, ist die aktuelle "Record"struktur (und die Werte) sogar automatisch speicherresident.

Gruß Heiner
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Record-Struktur zur Laufzeit ändern?

  Alt 13. Sep 2004, 15:49
Zitat von HeinerGrimm:
Das stimmt nur teilweise. Ein Record kann durchaus eine nicht definierte Datensatzgröße haben, z.B. wenn er normale Strings enthält. In diesem Fall enthält der Record-Datensatz einen Pointer auf den String an Stelle der String-Characters.
Dann hat der Record aber dennoch eine feste Größe, da nur die Pointer (zu den Strings) zum Record gehören und die haben nunmal immer 4 Byte (bei 'ner 32Bit-Umgebung)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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:56 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