AGB  ·  Datenschutz  ·  Impressum  







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

Record dynamisch erzeugen

Ein Thema von Apollo13 · begonnen am 25. Okt 2004 · letzter Beitrag vom 26. Okt 2004
Antwort Antwort
Apollo13

Registriert seit: 3. Sep 2004
Ort: Pirna
36 Beiträge
 
Delphi 5 Enterprise
 
#1

Record dynamisch erzeugen

  Alt 25. Okt 2004, 10:15
hi,

nachdem in nun schon sehr lange hier im forum gesucht habe und trotzdem noch keine richtige antwort auf die frage gefunden habe muss ich jetz (noch-)mal fragen:

myRec=record
name: string;
id: integer;
end;

wie kann ich zur laufzeit nun den record so verändern das der an ende so strukturiert ist???

myRec=record
name: string;
id: integer;
neueID: integer; //neuer Eintrag
end;

kann mir dabei jemand helfen???

*fastverzweifelt* Apollo13
Es muss etwas getan werden! Aber nicht jetzt...
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Record dynamisch erzeugen

  Alt 25. Okt 2004, 10:18
Du könntest dir ein dynamisches Array aus einer Semi-Struktur zusammenstellen, in etwa so:
Delphi-Quellcode:
type
  TSemiRec = record
    Data: Pointer;
    DataType: TDataType;
  end;
Wobei DataType angibt, was genau Data^ enthält.

Du könntest aber auch Variant-Arrays benutzen..
Aber zu deiner anderen Frage: Die Möglichkeit der Änderung eines Typs zur Laufzeit besteht nicht.
  Mit Zitat antworten Zitat
Apollo13

Registriert seit: 3. Sep 2004
Ort: Pirna
36 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Record dynamisch erzeugen

  Alt 25. Okt 2004, 11:58
hm, ok...ich dachte mir das schon... da muss ich das irendwie anders lösen!!!

thx Apollo13
Es muss etwas getan werden! Aber nicht jetzt...
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: Record dynamisch erzeugen

  Alt 25. Okt 2004, 11:59
Spricht denn was dagegen, immer alle Felder im Record zu haben und nur bei bedarf zu füllen?
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
shmia

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

Re: Record dynamisch erzeugen

  Alt 25. Okt 2004, 13:11
Ein Alternative zum Record wäre ein Memory-Dataset; also eine Tabelle, die im Hauptspeicher liegt.
Damit kannst du zur Laufzeit Felder hinzufügen.
Ausserdem hast du nützliche Zusatzfunktionen wie z.B. Suchen mit Locate und Sortieren nach best. Feldern.
Ein Nachteil ist natürlich der Overhead, den ein Memory-Dataset mitbringt.
http://www.torry.net/pages.php?id=572
Empfehlenswert ist TkbmMem Table.
Bei sehr grossen Datenmengen kann obige Komponente sogar weniger Speicher benötigen
(wg. eingebauter Komprimierung) und wesentlicher schneller Datensätze finden als ein Array of Records.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Record dynamisch erzeugen

  Alt 25. Okt 2004, 13:59
Hai,

kleine Anmerkung: Beim Hersteller gibt es schon neuerer Versionen. Unteranderem auch für Delphi 7
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Record dynamisch erzeugen

  Alt 25. Okt 2004, 14:03
Hallo Apollo13, Hallo shmia,

Zitat von shmia:
[..] eine Tabelle, die im Hauptspeicher liegt [..]
..ist bei der von Apollo13 verwendeten Version von Delphi 5 (Enterprise) bereits in Form des Delphi-Referenz durchsuchenTClientDataSet vorhanden.
gruß, choose
  Mit Zitat antworten Zitat
Apollo13

Registriert seit: 3. Sep 2004
Ort: Pirna
36 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Record dynamisch erzeugen

  Alt 26. Okt 2004, 06:24
danke für die antworten. direkt schon den record im speicher lassen und bei bedarf füllen ist nicht sinn und zweck der sache. ich habe das zwar auch schon überlegt, jedoch sind die verschiedenen tabellen sehr unterschiedlich und somit fällt diese variante auch weg. die idee mit dem memory-dataset finde ich dagegen sehr interessant da sie dem problem am ehesten entgegen kommt. ich werds damit mal probieren!!! großes dankeschön nochmal!!!

Apollo13
Es muss etwas getan werden! Aber nicht jetzt...
  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 11:47 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