Autor Beitrag
Jas DA
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 05.05.03 11:48 
Und zwar stehe ich vor folgendem Problem. Habe ein Delphi Programm, bei dem es 5 Edit Felder gibt. Der Benutzer füllt nun alle 5 Edit Felder aus und klickt auf einen Button "Speichern".
Nun soll der Inhalt dieser Edit Felder eine Zeile einer Tabelle ergeben. Ich hoffe das ist einigermaßen verständlich. Sobald der Benutzer auf Speichern klickt, soll zum einen der Inhalt der Edit Felder in einer Datei abgespeichert werden und zum anderen soll der Inhalt dieser gesamten Datei im Delphi Programm angezeigt werden (also als Tabellenform).

1) Wie speichere ich den Inhalt der Felder in Tabellenform in einer Datei ab ?

2) Wie lade ich bei jedem Programmstart automatisch diese Datei und wie kann ich sie in Tabellenform anzeigen lassen ?

PS: Von Delphi habe ich wirklich sehr wenig Ahnung. Habe jahrelang in TurboPascal programmiert, aber da war das alles noch nicht so umfangreich wie es heutzutage ist.


Zuletzt bearbeitet von Jas DA am Mo 05.05.03 13:02, insgesamt 1-mal bearbeitet
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 05.05.03 12:15 
Hallo und :welcome: im Delphi-Forum.

Bitte gebe deinen Posting einen sinvollen Titel. Was sinvoll ist steht in den Richtlinien:
Delphi-Forum Richtlinien hat folgendes geschrieben:
1.1 Beiträge

Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.

Du kannst dein Topic ändern indem du beim Ersten Beitrag auf Edit drückst, es änders und dann wieder Absendest.

Zur Frage:
Was meinst du mit "Tabellenform"? Soll es eine Textdatei (z.B. CSV)werden? Wenn ja, dann geht das im Grunde immer noch so wie unter Turbo Pascal. Stichwörter hierfür sind ASSIGNFILE, RESET, REWITE, APPEND, ReadLn, WriteLn, CLODEFILE, IORESULT.

Für das Laden musst du einfach die entsprechende Rotine im OnCreate Ereignis deines Hauptformulars aufrufen.

Gruß
Klabautermann
Jas DA Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 05.05.03 13:02 
Sorry wegen der falschen Betreffzeile (beim nächsten Mal weiß ich es besser).
Zu meinem Problem: Wie das ganze abgespeichert wird (ob als Textdatei oder sonst wie) ist mir völlig egal. Ich hatte gehofft, ihr könnt mir die sinnvollste Möglichkeit nennen. Ne Datenbank wäre ja vielleicht angebracht, hab´ aber keine Ahnung, wie ich damit umgehen muss. Vielleicht kann mal jemand ein kurzes Beispiel geben, wie man eine Tabelle abspeichern und auch wieder laden kann.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 05.05.03 14:16 
Hallo,

dann kommt es drauf an, wieviele Daten du speichern willst.
Eine Datenbank lohnt sich eigentlich erst, wenn du große Datenmengen speichern oder kompexe anfragen machen willst.
Denn bei denen musst du auch immer ein Datenbank Management System mit ausliefern, weis deine Programmpacket oft um mehere MB vergrößern.
Sehr beliebt bei kleinen Datenmenden sind Ini Dateien.
Wie du mit diesen Arbeitest zeigen diese beiden Tutorials (1, 2) und hier kannst du ein Beispiel zu den meiner Meinung nach besseren tMemIniFile runterladen (welches im wesentlichen genauso funktioniert).
Eine modernere aber in deinem Fall warscheinlich überdimensionierte Möglichkeit währe XML.
Auch interessant in dem zusammenhang könnten Typisierte Dateien sein. Die könntest du von Turbo-Pascal kennen. Eine Beispielanwendung dazu findest du ebenfals unter diesem Link.
Zum Darstellen der Informationen würde ich dir dann die Komponente tStringGrid oder tListView empfehlen.

Gruß
Klabautermann

PS: Ich verschiebe das hier erst mal in Dateizugriff.
Jas DA Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 05.05.03 14:31 
Das ist doch mal was Konkretes. Danke erstmal dafür.

An eine ini-Datei habe ich wegen der einfachen handhabung auch schon gedacht, wusste allerdings nicht, ob die nicht nachher zu groß ist.

Die Tabelle besteht aus 200 Zeilen zu je 5 oder 6 Einträgen. Wäre da nicht ´ne ini-Datei zu groß ? Hab´ keine Ahnung, wie groß eine 1000 Zeilen lange ini-Datei ist.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 05.05.03 14:48 
Hallo,

alos ich würde dir zu tMemIniFile Raten (siehe beispiel) dmait kannst du auch Große Dateien erstellen (tIniFile ist auf 64kByte begrenzt). Diese Speichert aber nciht automatisch bei jeder änderung, sondern erst wenn du einen Befehl dazu gibst, somit ist sie schneller als tIniFile, du musst nur selber drauf achten irgendwann (spätestens beim beenden des Programs) die Daten zu speichern.

Wie groß die Datei wird ist natürlich eine Frage der zeilenlänge. Jeder Buchstabe ist ein Byte. 1024 Buchstaben = 1 kByte.
Ich habe grade mit dem tMemIniFile Beispielprogramm eine Dateim mit ca. 1.500 Zeilen erzeugt, das hat keine 2 Sekunden gedauert und die Datei ist 10,4 kByte groß.
Wenn du keine Romane in deinen 1000 Zeilen stehen hast sollte das mit der INI-Datei gehen.

Für Datenbanken sind die von dir angegebenen Datenmengen eigentlich nicht der rede wert. Will sagen, die währen ziemlich gelangweilt ;).

Gruß
Klabautermann
BungeeBug
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Mo 05.05.03 15:19 
Hi,
was is denn mit na StringList ?
Ich hab die grad auch das erste mal benutzt und muss echt sagen das das damit auch recht leicht geht :)

MfG BungeeBug
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 05.05.03 15:23 
Hallo,
BungeeBug hat folgendes geschrieben:
was is denn mit na StringList ?

das ist fast das selbe. Nur das du die Einteilungen (sektionen) ncit hast und die Komponente dir auch das umformatiernen von Zahlen und Datumswerten nicht abnimmt. Mnn erhällt also eine "unformatierte" Textdatei.

Es ist aber eine Variante, die du Jas DA in deine überlegungen aufnehmen solltest.

Gruß
Klabautermann
Jas DA Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 05.05.03 17:04 
Ich werde das Ganze jetzt mal mit der ini-Datei versuchen. Denke auch, dass ich keine Probleme damit haben werde. Ansonsten weiß ich ja jetzt, wo ich Hilfe finde. :D
Kalli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 06.05.03 08:12 
Hallo,
was spricht eigentlich gegen Paradox-Tabellen?

Damit kauft man sich einige Vorteile, wenn es irgendwann an die Datenausgabe auf Papier geht. (Quickreport).

Kalli
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 06.05.03 11:51 
Hallo,
Kalli hat folgendes geschrieben:
was spricht eigentlich gegen Paradox-Tabellen?

die BDE. Damit muss Jas DA dann ca. 6,5 MB mehr Daten ausliefern wenn er sein Programm mal veröffentlichen will.

Gruß
Klabautermann
Kalli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 06.05.03 15:34 
Hi,

da hast Du natürlich recht. Aber, was sind in der heutigen Zeit 6,5 MB? Erstellt man das Setup mit 'Express für Delphi' kann man alle Einstellungen vornehmen.
In vielen Fällen ist die BDE bereits auf dem Zielrechner vorhanden, so dass nur die ALIAS-Einträge ergänzt werden.
Aus eigener Erfahrung weiss ich, dass mit dem Programmieren die Anforderungen an die Datenquellen steigen. Es sei denn, dass einen eine eventuelle Datenredundans nicht weiter stört.
Es sollte auch nur ein Tipp sein, da ich mit diesen Tabellen fast alles löse.

Bis dann dann
Kalli :?
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 06.05.03 15:39 
Hallo,

der Tipp ist auch durchaus willkommen. Auch meine Antwort sollte ein solcher sein. Auch wenn diese direckt auf die Frage von dir folgte ist sie als hinweis für Jas DA gemeint. Denn es geht hier ja dadrum das er aus den Informationen die wir alle geben die für ihn günstigste Antwort raussucht.

Von dem BDE/Paradox gespann würde ich auch aus persölicher erfahrung abraten. Da bin ich ein gebranntes Kind. Ich würde da zu anderen Datenbanken raten. Aber ich denke für sein Problem ist die eine wie die andere (inkl. Paradox) überdimensioniert.

Gruß
Klabautermann
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Mo 04.08.03 21:53 
Titel: Von dem BDE/Paradox gespann würde ich auch aus persölicher e
...Von dem BDE/Paradox gespann würde ich auch aus persölicher erfahrung abraten....

Warum (ausser BDE) ? Habe bisher noch keinen Schaden erlitten... aber vorbeugen ist besser als nach hinten fallen...

_________________
Grüsse, eddyp
Kalli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 05.08.03 10:35 
Hi,
es ist schon etwas paradox mit Paradox.

Eigentlich weiß jeder, dass Paradox nicht geeignet ist, aber keiner weiß genau warum. Es gibt halt einige Funktionen, bei denen man mit Vorsicht ran muß (z.B. löschen mehrerer Datensätze in verknüpften Tabellen). Ich habe momentan 5 Projekte am Laufen, die voll auf Paradoc-Tabellen zurückgreifen. Ein Versuch mit Access ist schon in der Planung gescheitert (dies liegt wohl daran, dass ich seit fast 8 Jaheren mit Paradox arbeite). Die Nachteile mit den einzelnen Dateien finde ich nicht so tragisch und wie ich schon gesagt habe, gibt es viele Programme, die die BDE mitbringen.

Bei den Programmen handelt es sich um ein komplettes Provisionssystem, bei dem Tabellen mit über 100.000 Einträge kein Problem bereiten. Ein Teil der Programme läuft im Netz und es werden von 5-6 Arbeitsplätzen auf die Daten zugegriffen.

Das einzige Problem was auftaucht ist ein Angebotsprogramm. Bei jedem Update überschreibt es mir die BDE-Einstellungen. Hiergegen hab ich aber ein Programm geschrieben, was dies dann wieder berichtigt.

Fazit: Wegen der vielen negativer Berichte habe ich zwar ein ungutes Gefühl, aber eine Umstellung nur aus diesem Grund werde ich wohl nicht vornehmen. (Mit allen Dienstprogrammen wären es ca. 12 Programme und an die 60 Tabellen sowie unzählige Quickreports).

Das ganze sind so meine Gedanken und Erfahrungen zu Paradox.
Würde ich von Vorne beginnen, hätte ich auch die Qual der Wahl.

Kalli
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Di 05.08.03 21:27 
das Problem mit den BDE- Einstellungen hatte ich auch mal unter D3. Hab das damals mit etwas direkterer Programmierung (zusätzliche Aliasangaben im Prg. usw.) wegbekommen. Sonst hatte ich nie Ärger. Also lasse ich alles wie es ist, wenn es nichts konkreteres gibt....

_________________
Grüsse, eddyp