Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Frage zur Methodik der Datenspeicherung (https://www.delphipraxis.net/106486-frage-zur-methodik-der-datenspeicherung.html)

sirius 11. Jan 2008 17:07

Re: Frage zur Methodik der Datenspeicherung
 
Das Problöem bei File of xxx ist, dass der Name dann eine festgelegt Maximallänge (<=255 Zeichen) haben muss und als xx nimmst du dann einen Record:
Delphi-Quellcode:
type TDaten=record
       name:string[50];
       Quali:array[1..11] of boolean
end;
Aber typisierte Dateien entsprechen nicht deiner Vorgabe von OOP. Dafür ist TFileStream besser.

Noch die andere Frage: Array oder etwas anders. Du kannst 11 Qualifikationen auch in 32bit unterbringen:
Delphi-Quellcode:
type TQuali=(Q1,Q2,Q3,Q4,Q5,Q6,Q7,..);
     TQualis=set of TQuali;

quendolineDD 11. Jan 2008 17:10

Re: Frage zur Methodik der Datenspeicherung
 
Aber die Firma wird keine Installation von Datenbanken erlauben. Letztendlich muss ich schauen ob das Programm von der IT-Abteilung überhaupt genehmigt wird.
Ich darf ja nicht einfach was auf die Rechner aufspielen.

Ich würde mir evtl. mal anschauen wie man mit einem XML-File umgeht, aber letzendlich reden wir an meiner eigentlichen Fragestellung vorbei.

MIr geht es darum, wie ich die Daten in der Klasse unterbringen soll ... als statischer Array of String oder eben die absoluten Daten

EDIT:

Ich werde das ganze dann wohl per Filestream speichern und auslesen. Was mir aber immer noch Kopfzerbrechen bereitet ist, wie ich die einzelnen Daten der Personen nun in die Klasse integriere?!

Vielleicht bietet sich hier ja gar eine StringList an.
Delphi-Quellcode:
TPerson = class(TObject)
public
name: string;
Quali: TStringlist;
end;
Sodass ich im constructor von TPerson die Stringliste initialisiere und dann eine property zum Setzen der Eigenschaften mache, was dann das einschreiben der Daten vornimmt und letztendlich alles mit abspeichert.

wicht 11. Jan 2008 17:31

Re: Frage zur Methodik der Datenspeicherung
 
Du sollst ein Programm schreiben, aber weißt nicht, ob es benutzt werden darf? Ää okay..
Ich würds ungefähr so machen, wie sirius sagte:

Delphi-Quellcode:
type
  TQualifikation = (quA, quB, quC, ...);
  TQualifikationen = set of TQualifikation;

  TMensch = class(TObject)
  public
    Name: string;
    Qualis: TQualifikationen;
  end;
Das wäre IMO ein schöner Ansatz, was OOP betrifft. XML speichern kannst du gut mi den JEDI Teilen, JvSimpleXML heißt die Unit glaube ich. Eventuell ist in der Firma ja sogar eine DB vorhanden, wo man das "zupacken" könnte?

quendolineDD 11. Jan 2008 17:35

Re: Frage zur Methodik der Datenspeicherung
 
Das Problem ist, das ich das Programm dann vollständig mit Quellcode halt an die IT-Abteilung übergeben muss und die das am Ende genehmigen müssen.
Aufgrund von Spionage ist da Infineon sehr ... naja :)

Ich schaue mal was das set of ist, das ist mir bisher noch nicht geläufig :\

Aber danke für die rege Diskussion :o)

PS:

Ich soll nicht, ich will.

Ghostwalker 11. Jan 2008 17:39

Re: Frage zur Methodik der Datenspeicherung
 
Wie wärs mit folgender Variante:

Delphi-Quellcode:
Type
   TQualiIDS = (quali1,quali2,quali3,quali4,quali5,quali6,quali7,quali8,quali9,quali10,quali11);
   TQualis = set of TQualiIDS; //fürs speichern in der Datei, DB oder was auch immer;

const
   TQualibez = array [TQualiIDS] of String (
   'Qualification 1',
   'Qualification 2',
   'Qualification 3',
   'Qualification 4',
   'Qualification 5',
   'Qualification 6',
   'Qualification 7',
   'Qualification 8',
   'Qualification 9',
   'Qualification 10',
   'Qualification 11');

Type
  TPerson = class(Tobject)
  private
     fquali : TQualis;
   :
Damit erschlägst du gleich 3 Dinge auf einmal. Zum einen der interne Zugriff, der, mit den entsprechenden Bezeichnern bei den TQualiIDS, transparent abläuft. Für die Speicherung in einer
Datei hast die TQualis, das sehr platzsparend ist. Und schlussendlich für Ausgaben (ob Drucker oder Bildschirm is wurscht), hast du gleich deine Texte :)

quendolineDD 11. Jan 2008 17:45

Re: Frage zur Methodik der Datenspeicherung
 
Heißt das aber nun, das jedes fQuali alle Qualifikationen von 1 bis 11 enthält, welche ja zu TQualiIDS reingeschriebn wurden oder sind die zu TQUaliIDS zugeordneten Werte bei dem set nur die möglichen Werte? Ich glaub hier fehlt es mir etwas an Wissen, welches ich wohl erstmal auffrischen muss :\
Ich werde mir das mal zu Hause anschauen wo ich Delphi zur Verfügung habe...

Sieht aber schonmal interessant aus :)

Danke und Grüße

wicht 11. Jan 2008 17:50

Re: Frage zur Methodik der Datenspeicherung
 
Wenn du nicht "sollst" und bei der genannten Firma arbeitest, dann würde ich vorher schauen, ob das möglich ist und gebraucht wird, weil ich mir vorstellen könnte, dass einfach so "Nein" gesagt wird.... Sonst ist die Enttäuschung am Ende eventuell da...

Nachtrag: TQualiIDS enthält die möglichen Werte. Du kannst in das Set TQualis alle Werte aus TQualiIDS reinpacken oder rausnehmen. Einfach mal nach der set-Geschichte Googeln, das ist sehr einfach zu verstehen und Beispiele sollte es in Masse geben...

Ghostwalker 11. Jan 2008 17:55

Re: Frage zur Methodik der Datenspeicherung
 
TQualiIDS ist lediglich eine Aufzählung. Das definiert dir quasi nur Namen für einzelne Werte und macht das ganze Spiel lesbar und transparent :)

(Tip: Laß dir einfach mal ord(q8) oder so ausgeben :) )

TQualis ist nun ein Set (Mengentyp). Jedem Element von TQualiIDS wird im Set ein Bitmuster zugeordnet, so das die einzelnen Elemente unterschieden werden können. Wichtig ist, das du max. 256 verschiedene Werte in einem Set unterbringen kannst (hat nur 1 Byte).

Naja..die Stringkonstanten erklären sich glaub ich von selbst :)

sirius 11. Jan 2008 18:12

Re: Frage zur Methodik der Datenspeicherung
 
Infineon (wie überhaupt die gesamte HL-Bracnhe) ist nicht gerade bekannt dafür, Informationen des Unternehmens anders zu speichern, als sie es selbst wollen.

grenzgaenger 11. Jan 2008 18:51

Re: Frage zur Methodik der Datenspeicherung
 
Zitat:

Zitat von sirius
Infineon (wie überhaupt die gesamte HL-Bracnhe) ist nicht gerade bekannt dafür, Informationen des Unternehmens anders zu speichern, als sie es selbst wollen.

nicht nur die HL branche, sondern eigentlich jedes grössere unternehmen. und das ist durchaus sinnvoll.

wenn sie dein progy screenen und sehen, dass du personenbezogene daten im klartext auf die platte legst, da bekommt der sicherheitsbeauftragte einen kollaps. also du musst deine daten unbedingt verschlüsseln und ordentlich ablegen. ich empfehle dir, hierfür eine datenbank mit verschlüsselung zu verwenden. hier gehen IMHO zwei wege (a) eine embedded DB oder (b) eine DB welche in deiner firma vorhanden ist (z. B. Access über ADO).

wünsch dir noch viel spass
GG


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Seite 2 von 3     12 3      

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