Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Dateien erstellen beste methode??? Oder vllt doch eine DB (https://www.delphipraxis.net/98460-dateien-erstellen-beste-methode-oder-vllt-doch-eine-db.html)

snow 27. Aug 2007 19:07


Dateien erstellen beste methode??? Oder vllt doch eine DB
 
Hallo

Ich muss ein paar daten speichern. und zwar

Pro Lok (Der absolute maximal wert liegt bei ca 16.000 loks wird aber aus kostengründen nie erreicht)

Ca 20 Strings
Array mit 128 einträgen
Ca 25 Byte

welches ist die beste bzw einfachste methode solche mengen an daten zu speichern und später wieder zu laden.
eine Datenbank(muss dazu sagen das ich sowas noch nie benutz habe)

Oder doch eine .CSV datei??

Ich muss die daten später in den ram laden können und dann bestimmte werte dabei verändern und später wieder zurückspeichern können.

MfG snow

mkinzler 27. Aug 2007 19:25

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Bei dieser Datenmenge würde ich eine DB verwenden.

phlux 27. Aug 2007 19:40

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
geht natürlich auch mitm file, aber wenn du anfängst suchen zu wollen ist glaub ich ne db performanter :)

snow 27. Aug 2007 19:42

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
hallo ich hab im netz (dsts) folgendes gefunden

Zitat:

Eins gleich vorweg: Beim Datenbankzugriff über Table- oder Query-Komponenten muss die Borland Database Engine (BDE) installiert sein, was mit der Delphi-Installaltion automatisch geschieht. Wird die Anwendung weitergegeben, muss die BDE beiliegen. Borland erlaubt die lizenzkostenfreie Weitergabe der BDE;

ich benutze aber lazarus hab also sowieso nix von borland. Muss ich eine solche engine auch bei lazarus mitgeben und wenn ja welche??

MfG snow

mkinzler 27. Aug 2007 19:44

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Die BDE würd ich eh nicht mehr verwenden. Da würde sich Zeos als Zugriffskomponenten und FB oder MySQL als DBMS eigenen.

scrat1979 27. Aug 2007 20:02

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Hallo!!

Für solche Zwecke verwende ich die One-File Datenbank-Komponente Absolute Database von ComponentAce. Die DB-Enginge kompiliert direkt in die EXE-Datei und unterstützt SQL. Wäre ein Versuch wert. Für privatnutzung kostenlos. Keine Ahnung, ob es mit Lazarus funktioniert - musst einfach mal schauen.

SCRaT

mkinzler 27. Aug 2007 20:07

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Wohl nicht:
Zitat:

Zitat von http://www.componentace.com
Target Development Environment:

* Delphi 4
* Delphi 5
* Delphi 6
* Delphi 7
* Delphi 2005
* Delphi 2006
* Delphi 2007
* Turbo Delphi Professional
* C++ Builder 4
* C++ Builder 5
* C++ Builder 6
* C++ Builder 2006.
* Turbo C++ Professional
* Trial and Personal editions of Delphi are not supported


snow 27. Aug 2007 20:09

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
http://wiki.freepascal.org/Lazarus_Tdbf_Tutorial/de das hab ich gefunden hört sich vielversprechend an. anscheinend hat lazarus berreits eine komponente.

MfG snow

mkinzler 27. Aug 2007 20:12

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Das ist aber nur eine Zugriffskomponente für dBase-Dateien.

phlux 27. Aug 2007 20:19

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
wie wärs mit lazarus und sqlite?
http://www.lazarus.freepascal.org/mo...rticle&sid=123

christian_u 27. Aug 2007 20:41

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Bei Maximal 16000 Datensätzen eine Datenbank ?
Ist das nicht "ein wenig" übertrieben ?
ich würd einfach ne Datei nehmen n typisiertes File oder so.

mkinzler 27. Aug 2007 20:45

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Natürlich würde es auch mit einer datei funktionieren, der Aufwand wäre aber um einiges höher.

snow 27. Aug 2007 20:48

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
wenn ich eine datenbank nutze kann ich alle daten in eine datei quetschen. sonst würde ich z.B noch eine weitere datei für gleise, Magnetartikedecoder, Rückmeldedekoder, Blockverwaltung, Interfaceverwaltung, Versions und Regestry-key verwaltung usw usw erstellen.


jetzt pack ich all den kram in eine datenbank und deckel drauf.

SO eine datenbank macht das dann auch übersichtlicher als z.b .csv dateien.und warum sollten 16.000 datensätze zu wenig sein? eine firma die 16.000 kunden hat nutz auch eine datenbank. Außerdem kann man eine datenbank einfacher erweitern( eine datenbank von meinem programm der version 1.0 lässt sich nacher auch in 2.0 lesen)


MfG snow

dor557 27. Aug 2007 20:51

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Probier es mit Firebird und diesen Komponenten Könnte klappen. Habe es aber nicht getestet. Benutze aber die Delphi version davon !

Gruss Sascha

christian_u 27. Aug 2007 20:53

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Zitat:

Natürlich würde es auch mit einer datei funktionieren, der Aufwand wäre aber um einiges höher.
Einen Datenbankserver aufzusetzen, sich in SQL einzuarbeiten und dann für n paar tausend Datensätze das über nen DB Server laufen zu lassen ist weniger Aufwand als ein File of Record mit 15 Zeilen Quelltext zu bedienen ? Ich weiss ja nicht ...

@Snow bei ein paar tausend Datensätzen lohnt sich weder für eine Kundendatenbank noch ne Lokverwaltung ne Datenbank, und das Argument mit alles in einer Datei ... Du hast bei nem Datenbanksystem nie nur eine Datei. Du brauchst auch mehrere Tabellen wenn du z.b. TDbf nimmst was sicherlich noch das ökonomischste wäre brauchst du trotsdem eine Tabelle für Loks eine für Schienen usw. das kommt alles aufs selbe raus und warum soll deine Version 2 das Dateiformat plötzlich nicht mehr lesen können ?!

mkinzler 27. Aug 2007 20:55

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Aber wieviel Datensätze lohnt sich deiner Meinung dann der Einsatz eines DBMS?
Zudem benötigt die Installation des Servers, der übrigens nicht unbedingt nötig ist, nicht lang.

snow 27. Aug 2007 20:55

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
bei lazarus steht das alle komponenten schon dabei sind. mögliche typen sind

[quote]# 3 dBase III+
# 4 dBase IV
# 7 Visual dBase VII
# 25 FoxPro[delphi]

will ein bissel schreibarbeit sparen desshalb will ich einen von dehnen nehmen.

MfG snow

Zitat:

Einen Datenbankserver aufzusetzen, sich in SQL einzuarbeiten und dann für n paar tausend Datensätze das über nen DB Server laufen zu lassen ist weniger Aufwand als ein File of Record mit 15 Zeilen Quelltext zu bedienen ? Ich weiss ja nicht ...
Server??? Server??? ich bastel an einem programm für modelleisenbahnen. Das braucht doch keinen server.

mkinzler 27. Aug 2007 20:56

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Nur diese sind alle veraltet

christian_u 27. Aug 2007 21:02

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Ein DBS lohnt sich ab dem zeitpunkt wo eine Suchanfrage länger als ein paar sekunden dauern würde oder man zuviele Abhängigkeiten zwischen den daten hat. Beides hier lang nicht gegeben.

Wiso ? DBase 7 ist das neueste DBase da ich kenne ?!

Und mit TDbf kann man wirklich gut leben ist für den fall schon mit Kanonen auf Spatzen geschossen aber wenn er unbedingt ne Datenbank machen will so ist er wenigstens Serverunabhängig.

Was ist denn bitte ein veraltetes format ?
Textdateien gibts seit anbeginn der Computergeschichte ist das deswegen jetzt veraltet ?
Bloss weil es gerade keinen Hype um irgendwas gibt ist es nicht veraltet.

mkinzler 27. Aug 2007 21:03

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Ich meinte nicht die dBase-Version sonder dBase an sich.

snow 27. Aug 2007 21:08

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Zitat:

Ein DBS lohnt sich ab dem zeitpunkt wo eine Suchanfrage länger als ein paar sekunden dauern würde oder man zuviele Abhängigkeiten zwischen den daten hat. Beides hier lang nicht gegeben.
Du denkst wohl das man auf einer modellbahn zeit hat??? Hat man aber nicht. Mann muss ser schnell bestimmte daten wie ist ein Block gerade belegt JA, NEIN wenn ja von wehm blablabla rausfinden. Auch muss man herausfinden welche decoderadresse hat LOK mit dem namen
"Inter-City-Express" Wird sie in einem Zug verwendet und in welchem block ist der zug und wann wird er Block xyz erreichen und wieder verlassen. Der zustand jeder weiche jedes Signals muss immer parrat sein um zusammenstöße zu vermeiden. Auf einer ganz großen anlage (Miniatur Wunderland oder auch einer anderen Show-anlage) kommen da schon ganz schöne mengen an daten zusammen.

MfG snow

christian_u 27. Aug 2007 21:15

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Dann würd ich leiber ne Typisierte Datei nehmen beim Datenbanksystem hast du schon Zeit fürs bauen der Anfrage und co verschwendet.
Die Anfrage selbst dauert auch etwas zu bearbeiten. Deine kleine Datei zu durchsuchen dauert bloß n paar ms. Das mit den Sekunden waren für mich Abgrenzungskriterien. Du wirst bei deinen 16000 Datensätzen nie mehr als 100ms brauchen um den entsprechenden Datensatz gefunden zu haben.

dominikkv 27. Aug 2007 21:16

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
http://www.delphipraxis.net/internal...=742661#742661

scrat1979 27. Aug 2007 21:32

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Zitat:

Zitat von christian_u
Zitat:

Natürlich würde es auch mit einer datei funktionieren, der Aufwand wäre aber um einiges höher.
Einen Datenbankserver aufzusetzen, sich in SQL einzuarbeiten und dann für n paar tausend Datensätze das über nen DB Server laufen zu lassen ist weniger Aufwand als ein File of Record mit 15 Zeilen Quelltext zu bedienen ? Ich weiss ja nicht ...

Zuerst mal möchte ich sagen, daß ich kein Gegner von typisierten Dateien bin! Aber:

15 Zeilen Quelltext scheinen mir aber ehrlich gesagt etwas zu optimistisch veranschlagt. Eine Einarbeitung in SQL ist meiner Meinung bei einer einfachen Datenbank sogar z.T. gar nicht notwenig. Ein paar Einstellungen und Filter im OI reicht fürs ERSTE aus. Vorteil: Durch Einarbeitung in SQL lässen sich SPÄTER auch komplizierte Abfragen erzeugen - sollte es notwenig werden. Und mal Hand aufs Herz: Simple SQL-Abfragen sind wirklich kein Problem, wenn man mal ein paar Stunden SELECT-Abfragen geübt hat (bezieht sich auf einfache Queries).

Zitat:

Zitat von christian_u
@Snow bei ein paar tausend Datensätzen lohnt sich weder für eine Kundendatenbank noch ne Lokverwaltung ne Datenbank, und das Argument mit alles in einer Datei ... Du hast bei nem Datenbanksystem nie nur eine Datei. Du brauchst auch mehrere Tabellen wenn du z.b. TDbf nimmst was sicherlich noch das ökonomischste wäre brauchst du trotsdem eine Tabelle für Loks eine für Schienen usw. das kommt alles aufs selbe raus und warum soll deine Version 2 das Dateiformat plötzlich nicht mehr lesen können ?!

Was das angeht widerspreche ich: Absolute Database benutzt definitiv nur EINE Datenbankdatei. Natürlich braucht man verschieden Tabellen, aber je nach DBMS z.T. nur EINE Datei. FireBird speichert seine Datenbank auch in einer Datei ab (wobei ich nicht weiß, ob noch anderswo zusätzliche Dateien erzeugt werden...)
Was ist, wenn ich plötzlich ein zusätzliches Feld benötige? Bei einer DAtenbank lässt sich eine Tabelle einfach erweitern und den Source entsprechend leicht anpassen. Bei einer typisierten Datei müsste man das ganze Dateiformat in ein neues konvertieren , da sich ja auch die Record-Größe geändert hat (oder liege ich da falsch?).

Liebe Grüße,
SCRaT

snow 27. Aug 2007 21:39

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
lässt sich eine datenbank nicht übersichtlicher ansprechen oder?

Bei einer datenbank lassen sich einträge doch besser überschreiben oder? Da es bei einer Datenbank doch keine Doppelten einträger geben kann oder???



Ich glaub ich bleib aber bei ner datenbank will mal was neues können??



Zitat:

Bei einer typisierten Datei müsste man das ganze Dateiformat in ein neues konvertieren , da sich ja auch die Record-Größe geändert hat (oder liege ich da falsch?).
ganz so schlimm ist es nicht. man kann seine datei ja wie ein Buch schreiben also mit kapitlen die einen klaren Anfang und ein klares Ende haben. trotzdem ist so etwas nacher sehr unübersichtlich und man kann die datei nur mit seinem programm öffnen nicht mit einem anderen Datenbank prgramm, wie etwa Microsoft Access.

MfG snow

mkinzler 28. Aug 2007 06:33

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Zitat:

lässt sich eine datenbank nicht übersichtlicher ansprechen oder?
Imho ja.
Zitat:

Bei einer datenbank lassen sich einträge doch besser überschreiben oder?
Ja.
Zitat:

Da es bei einer Datenbank doch keine Doppelten einträger geben kann oder???
Ja kann man so Einstellen, das doppelte Werte abgelehnt werden.
Zitat:

Bei einer typisierten Datei müsste man das ganze Dateiformat in ein neues konvertieren , da sich ja auch die Record-Größe geändert hat (oder liege ich da falsch?).
Bei Änderungen in den Daten und dem Schema muss die Datei neu geschrieben werden.

christian_u 28. Aug 2007 06:36

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Zitat:

5 Zeilen Quelltext scheinen mir aber ehrlich gesagt etwas zu optimistisch veranschlagt.
1 test = record
2 meinevariable : integer;
3 end;

4 var
5 f: file of test;
6 daten : test;

7 assignfile('test.dat');
8 rewrite(test);
9 write(f,daten);
10 closefile(f);

Mhm, optimistisch ?

Zitat:

Absolute Database benutzt definitiv nur EINE Datenbankdatei
Ja ja es gibt Datenbanksysteme mit nur einer Datei aber das ist die absoulute Minderheit die meissten machen eine Datei pro Index ind eine pro tabelle. Absoulute Database hab ich z.b. noch nie gehört mit Firebird hättest du mehr trumpfen können aber das ist haarspalterei.

Zitat:

Ich glaub ich bleib aber bei ner datenbank will mal was neues können??
Und so ein Spruch bei deinem ersten Pascal Projekt ... :)
Ne schon ok TDbf ist ganz ok für die Anwendung.

mkinzler 28. Aug 2007 06:41

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Zitat:

Ja ja es gibt Datenbanksysteme mit nur einer Datei aber das ist die absoulute Minderheit
Nein, die richtigen DBMS haben sehr oft nur eine Datei.
Zitat:

Mhm, optimistisch ?
es geht hier nicht nur um das einmalige Schreiben toter Daten, sondern um lebende Daten die einer gewissen Änderung unterworfen sind. Dann muss man die Daten nämlich auch im speicher verwalten (Liste, Baum, o.ä.).
Zitat:

Ne schon ok TDbf ist ganz ok für die Anwendung.
1. Ist dBase nicht gerade uptodate und 2. kann diese Komponente kein SQL.

s-off 28. Aug 2007 06:48

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Nimm eine lokale Datenbank. Wenn Du irgendwann das Schienensystem der Deutschen Bahn verwaltest, kommst Du mit Textdateien nicht weit :mrgreen:

Damit fährst Du aus meiner Sicht in jedem Fall gut, egal, wieviele Datensätze Du hast. Du bist viel fexibler als bspw. mit typisierten Dateien.
Man entwickelt eine Software vorausschauend. Da ist es falsch, etwas zu behaupten wie 'Och, ich habe max. 16000 Datensätze. Diese Zahl wird aber nur theoretisch erreicht.' Niemand weiss, was kommen wird - auch wenn das Beispiel mit der Deutschen Bahn sicherlich Utopie ist :wink:
Und wenn Du Dich in das Thema DBs erstmal eingearbeitet hast, dann lässt sich das Prinzip sehr gut auf Folgeprojekte übertragen.

Meine Meinung: Investiere ruhig die Zeit (wenn Du sie hast), Dich mit Datenbanken auseinander zu setzen; Du wirst es später sicherlich nicht bereuen.

Zur Auswahl stehen einige, die sich lokal nutzen lassen:
Firebird
SQLite
dBase

Solltest Du zu dBase greifen, so empfehle ich Dir die ADS-Komponenten von ExtendedSystems.

Diverse Tutorials zu Firebird bzw. Links zu diesen findest Du hier im Forum.

Edit: Ich habe glatt vergessen, dass Du Lazarus benutzt; damit hätten sich der Einsatz der ADS-Komponenten glaube ich erübrigt. Mit den Turbo-Editionen funktionieren sie allerdings. Btw: Hast Du vor, Deine Gleissystem-Anwendung irgendwann auch nach Linux zu portieren?

Angel4585 28. Aug 2007 06:51

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Wäre XML keine Möglichkeit? Bei Delphi gibts wenn ich mich nicht täusche ne Komponente dafür, vllt gibts die bei Lazarus auch?

Allerdings wenn es mal mehr werden sollte würde ich auch eher eine Datenbank empfehlen. so viel aufwand ist es nicht eine MySQL-Server-Anwendung zu installieren und darauf zuzugreifen.

mkinzler 28. Aug 2007 09:58

Re: Dateien erstellen beste methode??? Oder vllt doch eine D
 
Komponente für dem Zugiff auf FB für Lazarus:
http://www.torry.net/db/direct/fireb...taSet_1_25.zip
benötigt
http://www.torry.net/pages.php?id=1171#111304


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:40 Uhr.

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