Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie würdet Ihr das lösen? (https://www.delphipraxis.net/183461-wie-wuerdet-ihr-das-loesen.html)

Perlsau 11. Jan 2015 13:56

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von Kralle (Beitrag 1286210)
... Mein erster Ansatz war die Informationen immer an ganz bestimmte Stellen eines StringGrids zu schreiben und das hinterher in eine Datei zu schreiben. ... Welche Möglichkeiten gibt es noch?

Wie Sir Rufo bereits bemerkt hat: Wirklich niemals, auf gar keinen Fall, echt nicht darstellende Komponenten zur Datenspeicherung einsetzen! Darstellende Komponenten sollten allein der Darstellung bzw. als Benutzerschnittstelle dienen.

Ich würde für sowas immer eine Datenbank nehmen. Das ist übersichtlich, leicht zu verwalten und leicht zu pflegen. Daten sind leicht zu selektieren, zu sortieren, zu speichern usw. Alles andere ist bei Programmen, die über ein Hello World hinausgehen, der falsche Ansatz.

Einfachste Datenbank-Verwendung beschreibt z.B. ein Tutorial im Delphi-Treff: Einfache Datenbanken mit MyBase. Da du aber sowieso mit XE7 arbeitest, kannst du auch gleich eine richtige Datenbank einsetzen und diese mit den FireDac-Komponenten ansprechen. Hier würde ich zu einer Firebird-Datenbank raten, die ist leicht zu erlernen und stellt sogar eine Embedded-Variante zur Verfügung (= läuft dann auch ohne installierten Firebird-Server).

Weitere Datenbank-Tutorials im Delphi Treff

Zum Erstellen einer Firebird-Datenbank installiert man sich erst einmal den passenden Firebird-Server. Danach lädt man sich von IbExpert den Datenbank-Manager herunter.

Weitere Infos zur Datenbank-Entwicklung erhältst du bei Bedarf, falls du dich dafür entscheiden solltest.

Bemerkung:
Wenn man sich mal daran gewöhnt hat, mit Datenbanken zu arbeiten, möchte man das nicht mehr missen :-D

Sir Rufo 11. Jan 2015 14:06

AW: Wie würdet Ihr das lösen?
 
Man könnte also die Basisdaten folgendermassen darstellen:
Delphi-Quellcode:
TDataItem = class
public
  property Code : Integer;
  property Comment : string;
  property Value : string;
end;

TData = class
public
  property Dialog : TList<TDataItem>;
end;
Da ich keinen Gesamtüberblick habe, kann ich das natürlich schlecht überschauen, was nun wirklich benötigt wird, bzw. wie man die Struktur passend in einer Klasse darstellen kann. Wichtig ist und bleibt aber immer der Zusammenhang zwischen Daten und Kontext. Die Eigenschaften Comment und Value sind beide vom Typ string, aber durch den Aufbau der Klasse und die Benennung stelle ich auch noch den Kontext dar.

AlexII 11. Jan 2015 20:48

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von Perlsau (Beitrag 1286230)
Hier würde ich zu einer Firebird-Datenbank raten, die ist leicht zu erlernen.

Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.

Perlsau 11. Jan 2015 21:24

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von AlexII (Beitrag 1286263)
Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.

Also wenn du Firebird wirklich kennen würdest – und das wäre ja die Voraussetzung für den Vergleich mit SQlite –, dann wüßtest du, daß man auch Firebird nicht installieren muß. Zum Entwickeln einer Firebird-Embedded-Anwendung genügt es nämlich, die entsprechende Dll ins Bin-Verzeichnis zu kopieren und der Connect-Komponente lediglich den vollständigen Dateinamen mitzuteilen. Dennoch empfehle ich stets auch die Installation des Firebird-Servers (geht quasi vollautomatisch), weil sich's dann leichter entwickeln läßt.

Im Grunde ist's mir aber völlig egal, was du lieber nehmen würdest. Das kannst du halten wie "sella uff'm Dach". Jeder nimmt am liebsten immer das, was er schon kennt und macht das andere schlecht, weil er's nicht lernen will. Derartige Threads hatten wir hier ja schon bis zum Abwinken und darum geht's hier auch nicht, sondern um die Beantwortung der Frage, wie man das Problem des TE am besten lösen könnte. Wenn er sich für eine Datenbank statt ominösem Dateigefuchtel entscheidet, ist's mir auch piepe, welche DB er sich da aussucht.

Alles klar?

AlexII 11. Jan 2015 21:41

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von Perlsau (Beitrag 1286264)
Alles klar?

Hast Du schlecht geschlafen oder was?
Ich mache keine DB schlecht, oder kritisiere sonst irgendwas... ich schreibe nur wie ICH (und nicht jemand) das machen würde. Jeder schreibt hier was er machen würde, und ich mache nichts anderes. Deswegen verstehe ich deine Aufregung nicht.

mkinzler 11. Jan 2015 22:22

AW: Wie würdet Ihr das lösen?
 
Zitat:

Ich mache keine DB schlecht, oder kritisiere sonst irgendwas...
Zitat:

Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.
Dann erklär uns doch einfach, warum SQLite zig mal einfacher wie FireBird ist.

p80286 11. Jan 2015 22:28

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von Kralle (Beitrag 1286225)
Die Zeilennummern dürfen am Ende KEINE Lücken aufweisen

Dann numeriere eben kurz vor dem Ende.
Zitat:

Zitat von Kralle (Beitrag 1286225)
Manche Sheets und deren Objekte dürfen aber auch nur dann aktiv sein wenn auf den vorherigen Sheets bestimmte Bedingungen erfüllt sind.

Das ist ein Problem der Oberfläche.

Und als Zwischenspeicher würde ich eine TList, TObjectlist oder eine TStringlist benutzen.

Gruß
K-H

p80286 11. Jan 2015 22:29

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von mkinzler (Beitrag 1286267)
Zitat:

Ich mache keine DB schlecht, oder kritisiere sonst irgendwas...
Zitat:

Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.
Dann erklär uns doch einfach, warum SQLite zig mal einfacher wie FireBird ist.

Wäre dafür nicht ein eigener Thread geeigneter?

Gruß
K-H

Perlsau 12. Jan 2015 03:05

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von AlexII (Beitrag 1286266)
Zitat:

Zitat von Perlsau (Beitrag 1286264)
Alles klar?

Hast Du schlecht geschlafen oder was?
Ich mache keine DB schlecht, oder kritisiere sonst irgendwas... ich schreibe nur wie ICH (und nicht jemand) das machen würde. Jeder schreibt hier was er machen würde, und ich mache nichts anderes. Deswegen verstehe ich deine Aufregung nicht.

Nein danke, ich hatte zu dieser Zeit noch gar nicht geschlafen, sondern bis kurz vorher gearbeitet und dank etlicher Erfolgserlebnisse sogar auffallend gute Laune :wink:

Die Frage danach, ob bei dir jetzt alles klar sei, sollte dich keinesfalls provozieren, sondern diente einfach nur der Bestätigung, daß du meinen Ausführungen zu folgen verstehst. Aufgeregt hatte ich mich dabei in der Tat kein bißchen, das hast du dir lediglich eingebildet :lol:

Und nun wieder zurück zum Thema, bitte :!:

Achso, bevor ich's vergesse: Ist es richtig anzunehmen, daß du Firebird nicht wirklich aus der Praxis kennst :?:
Die Annahme liegt nahe, da du wie bereits erwähnt als angeblichen Vorteil von SqLite angibst, man müsse es nicht installieren, wobei du offenbar nicht wußtest, daß man Firebird ebenfalls nicht installieren muß, wenn man die Embedded-Variante wählt. Oder ist es nicht tatsächlich so, wie ich bereits oben ausführte: Man verteidigt, was man kann/kennt, und lehnt ab, was man nicht kann/kennt?

AlexII 12. Jan 2015 12:50

AW: Wie würdet Ihr das lösen?
 
Zitat:

Zitat von Perlsau (Beitrag 1286275)

[SIZE="9"]Achso, bevor ich's vergesse: Ist es richtig anzunehmen, daß du Firebird nicht wirklich aus der Praxis kennst :?:

Na ja... was heißt wirklich? Klar habe ich mich mit Firebird beschäftigt aber ich fand SQLite einfacher, allein bei der "Einrichtung" schon. Will hier aber nicht mehr darauf eingehen, sonst kommen wir vom Thema ab. Aber wenn Du irgendwelche Tutorials für Firebird hast, dann schaue ich mir diese DB noch mal an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz