AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

wie abspeichern?

Ein Thema von glkgereon · begonnen am 17. Jul 2004 · letzter Beitrag vom 22. Jul 2004
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#11

Re: wie abspeichern?

  Alt 19. Jul 2004, 14:01
aber ich hätte dann eine datei in der form:

Code:
[Name]
Unfall mit 30-Tonner
[Lauftext]
35-Jähriger erleidet schwere verletzungen an armen und beinen
[Text]
blablabla
.....
blablabla
.....
blablabla
.....
[Tipp]
mach dies
mach das
oder dies
oder das
und das ist nicht soo einfach....

wo gibts denn zlib?

is dasn externes prog oder is das ne compo, bzw ne unit, wo entsprechende procedures drin sind?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#12

Re: wie abspeichern?

  Alt 19. Jul 2004, 14:25
Hallo,
ich gehe mal davon aus, das die Patienten in einer Collection (Array, verkettet Liste o TList usw)
gespeichert sind. Dann haben wir hier einen ganz klaren Anwendungsfall der Klasse
Code:
TmxJsCollection
aus der CodeLib
Die einzelnen Patienteneigenschaften sind published properties eines Nachfahren von
TCollectionItem. Dann ist das Speichern eines Memos auch gar kein Problem mehr. Wenn
man sich entschließt noch ein paar Patienteneigenschaften hinzuzufügen bekommt der
TCollection-Nachfahre noch ein paar published properties (können auch Bitmaps sein !!!)
und das wars. Um das Speichern der zusätzlichen properties muss man sich nicht kümmern.
Läuft automatisch!!!
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#13

Re: wie abspeichern?

  Alt 19. Jul 2004, 14:39
also ich benutz diese unit, und dann?

als was muss ich meine "datenbank" dann deklarieren bzw wie kann ich diese benutzen?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#14

Re: wie abspeichern?

  Alt 19. Jul 2004, 14:55
Zitat von glkbkk:
also ich benutz diese unit, und dann?

als was muss ich meine "datenbank" dann deklarieren bzw wie kann ich diese benutzen?
Ich vermute mal, du meinst mich.
Es reicht natürlich nicht die unit zu verwenden. Du musst Dir auch das Beispiel anschauen und
nachvollziehen. Der Aufwand lohnt sich. Wenn Du den Source und die OOP dahinter verstanden
hast, wirst Du erkennen, dass das Gespann TCollection/TCollectionItem einfach genial ist.

Jeder Patient wird durch ein Objekt repräsentiert. (Das sollte in den Zeiten der OOP natürlich
selbstverständlich sein). D.h. alle Patienteneigenschaften werden in den published properties
eines TCollectionItem-Nachfahren repräsentiert. TmxJsCollection verwaltet dann die einzelnen
PatientenObjekte.

Jetzt kommt der MegaVorteil der Sache!!!!!!!!
Wenn Du Dich entschließt zu den Patienten ein Bild zu speichern erweiterst Du das PatientenObjekt
um eine TBitmap Eigenschaft (natürlich im published Abschnitt). Das wars!!! Das Bild wird automatisch gespeichert. Wenn Du noch Dateien mit alten Patientendaten (ohne Bild) hast können die Dateien trotzdem gelesen werden. Das wäre bei einer typisierten Datei nicht der Fall.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#15

Re: wie abspeichern?

  Alt 19. Jul 2004, 15:27
Genau,

TmxJsCollection kann ich dir auch nur empfehlen! Da kannst du quasi vollautomatisch das dfm-persistenzierung-system benutzen, das einzige was du machen ist: SaveToFile/loadFromFile

@Jens: Hab für unsere collection ein template erstellt, womit die collection ein user-typ interface hat. Sehr geil, weil man nirgends mehr casten braucht. Werd ich demnächst mal posten.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Eisenherz

Registriert seit: 10. Jun 2002
Ort: Stadeln
33 Beiträge
 
Delphi 5 Professional
 
#16

Re: wie abspeichern?

  Alt 19. Jul 2004, 17:10
Zitat von Jens Schumann:
Dann haben wir hier einen ganz klaren Anwendungsfall der Klasse
Code:
TmxJsCollection
aus der CodeLib
Wenn blkbkk damit Leben kann, dass er von TCollectionItem ableiten muss und nicht zu erwarten ist, dass die Datenstrukturen komplizierter werden, dann dürfte das der einfachste Weg sein. Ich finde es gut, dass mal jemand daran gedacht hat, dass man auch noch alte Dateiformate einlesen kann.

Wenn die Datenstrukturen aber komplexer werden, dann vermute ich, dass TmxJsCollection an seine Grenzen stoßen wird.

Da wäre z.B. Polymorphie.
Nehmen wir an blkbkk würde von der Klasse TPatient die Klassen TKassenPatient und TPrivatPatient ableiten. Er könnte die Instanzen dieser Klassen nicht in einer Collection halten, da Collections nur die Instanzen einer Klasse halten können.

Datenkapselung:
Es können nur published-Properties automatisch gespeichert werden. Das Speichern von Daten mit einer anderen Sichtbarkeit ist dann nicht mehr ganz so einfach.

Und was macht man, wenn man aus irgendeinem Grund nicht von TCollectionItem ableiten kann?
aloa Eisenherz
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#17

Re: wie abspeichern?

  Alt 19. Jul 2004, 17:27
Zitat von Eisenherz:
Wenn die Datenstrukturen aber komplexer werden, dann vermute ich, dass TmxJsCollection an seine Grenzen stoßen wird.
Eben nicht. TmxJsCollection kann n-dimensionale Strukturen speichern. Außerdem können die published
Properties auch wiederum Objekte sein. Diese Objekte müssen aber min von TPersistent abgeleitet sein.

Zitat von Eisenherz:
Da wäre z.B. Polymorphie.
Nehmen wir an blkbkk würde von der Klasse TPatient die Klassen TKassenPatient und TPrivatPatient ableiten. Er könnte die Instanzen dieser Klassen nicht in einer Collection halten, da Collections nur die Instanzen einer Klasse halten können.
Aber genau das ist der klassische Anwendungsfall von Polymorphie (also der innerste Sinn der OOP)
Die Collection verwaltet dann Klassen vom Type TPatient. Da TKassenPatient und TPrivatPatient Nachfahren
von TPatient sind gibt es hier keine Probleme. Die Klassen müssen naturlich OOP mäßig gestylt sein.
Siehe TStrings und ff.

Zitat von Eisenherz:
Datenkapselung:
Es können nur published-Properties automatisch gespeichert werden. Das Speichern von Daten mit einer anderen Sichtbarkeit ist dann nicht mehr ganz so einfach.
Wozu auch. Dann deklariert man die Properties eben als published. Wenn man unbedingt möchte das public properties gestreamt werden kann man noch mit DefineProperties arbeiten (überschreiben).

Zitat von Eisenherz:
Und was macht man, wenn man aus irgendeinem Grund nicht von TCollectionItem ableiten kann?
Dann hat man wohl Pech gehabt.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#18

Re: wie abspeichern?

  Alt 19. Jul 2004, 18:19
Zitat von Jens Schumann:
...Aber genau das ist der klassische Anwendungsfall von Polymorphie (also der innerste Sinn der OOP)
Die Collection verwaltet dann Klassen vom Type TPatient. Da TKassenPatient und TPrivatPatient Nachfahren
von TPatient sind gibt es hier keine Probleme. Die Klassen müssen naturlich OOP mäßig gestylt sein.
Siehe TStrings und ff.
Ich weiss nicht ob ich dich richtig verstehe, oder ob du eisenherz richtig verstehst , aber du kannst tatsächlich nur item von einer klasse in einer kollektion halten! Was dir sicher auch bewust ist? ..das hatte eisenherz nämlich angeprangert.


Wenn man hierarchische strukuren will und verschiedene klassen, dann muss man halt TComponent nehmen oder selbst was schreiben
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#19

Re: wie abspeichern?

  Alt 19. Jul 2004, 18:57
Zitat von maximov:
Zitat von Jens Schumann:
...Aber genau das ist der klassische Anwendungsfall von Polymorphie (also der innerste Sinn der OOP)
Die Collection verwaltet dann Klassen vom Type TPatient. Da TKassenPatient und TPrivatPatient Nachfahren
von TPatient sind gibt es hier keine Probleme. Die Klassen müssen naturlich OOP mäßig gestylt sein.
Siehe TStrings und ff.
Ich weiss nicht ob ich dich richtig verstehe, oder ob du eisenherz richtig verstehst , aber du kannst tatsächlich nur item von einer klasse in einer kollektion halten! Was dir sicher auch bewust ist? ..das hatte eisenherz nämlich angeprangert.
Ist ist mir bewußt. Dummerweise aber nicht in dem Moment als ich die Antwort geschrieben habe.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Eisenherz

Registriert seit: 10. Jun 2002
Ort: Stadeln
33 Beiträge
 
Delphi 5 Professional
 
#20

Re: wie abspeichern?

  Alt 20. Jul 2004, 09:55
Zitat von Jens Schumann:
Eben nicht. TmxJsCollection kann n-dimensionale Strukturen speichern. Außerdem können die published
Properties auch wiederum Objekte sein. Diese Objekte müssen aber min von TPersistent abgeleitet sein.
Du gehst hier davon aus, dass die Datenstrukturen hierarchisch sind. Solange das der Fall ist und man wirklich von TPersistent ableiten kann, ist deine Lösung super.
Aber oft hat man es mit relationalen Datenstrukturen zu tun. Objekte haben nur Reverenzen auf andere Objekte und sind nicht der Besitzer des anderen Objektes. Man kann sicherlich auch das mit TmxJsCollection lösen, dann ist es aber vorbei mit einfach nur published machen.

Zitat:
Zitat von Eisenherz:
Datenkapselung:
Es können nur published-Properties automatisch gespeichert werden. Das Speichern von Daten mit einer anderen Sichtbarkeit ist dann nicht mehr ganz so einfach.
Wozu auch. Dann deklariert man die Properties eben als published.
Lass das bloß keinen OO-Fanatiker lesen.

Zitat:
Wenn man unbedingt möchte das public properties gestreamt werden kann man noch mit DefineProperties arbeiten (überschreiben)
Das meinte ich mit "nicht mehr ganz so einfach". Mit DefineProperties konnte ich mich nie richtig anfreunden.

Zitat:
Zitat von Eisenherz:
Und was macht man, wenn man aus irgendeinem Grund nicht von TCollectionItem ableiten kann?
Dann hat man wohl Pech gehabt.
Nicht ganz, denn dafür habe ich eine Alternative anzubieten.
aloa Eisenherz
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:00 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