Delphi-PRAXiS
Seite 1 von 5  1 23     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)

Kralle 11. Jan 2015 12:00

Wie würdet Ihr das lösen?
 
Moin,

in meiner Anwendung gibt es viele TabSheets auf denen viele Checkboxen , RadioButton und Edits drauf sind.
Am Ende des Programmes soll eine struktuierte ASCII-Datei erstellt werden.

Mein erster Ansatz war die Informationen immer an ganz bestimmte Stellen eines StringGrids zu schreiben und das hinterher in eine Datei zu schreiben.
- Aber, so einfach ist das auch nicht, wenn man bedenkt das ja durch Ändern eines Radiobuttons sich auch Inhalte ändern. Oder durch Änderungen in einem Edit.

Also, war meine zweite Überlegung erst am Ende alle Seiten durch zu gehen und die Informationen einzusammeln, da gegen spricht, das der Anwender keine Live-Vorschau mehr hat.

Dann über legte ich das mittel MyBase zu lösen, empfand es aber auch hier als sehr schwer dafür zu sorgen das egal in welcher Reihenfolge die Daten eingegeben werden, die Reihenfolge immer gleich bleibt.

Also, überlegte ich alles außer den Daten der Editfelder schon fest einzutragen und nur über ein Feld als aktiv oder passiv zu definieren. Macht aber die Erweiterbarkeit schwerer weil man an zwei Stellen erweitern muß.

Auch für jedes TabSheet eine Stringliste führen hatte ich schon überlegt.

Welche Möglichkeiten gibt es noch?

Gruß Heiko

Sir Rufo 11. Jan 2015 12:08

AW: Wie würdet Ihr das lösen?
 
Auf jeden Fall würde ich die Daten nicht in den Controls verwalten/halten, sondern in entsprechenden Daten-Containern (Klassen).

pelzig 11. Jan 2015 12:34

AW: Wie würdet Ihr das lösen?
 
Eine INI-Datei ist doch eine struktuierte ASCII-Datei.

MfG

mkinzler 11. Jan 2015 12:39

AW: Wie würdet Ihr das lösen?
 
Eine Ini-datei ist eine Textdatei, welche zwar eien Struktur aufweist aber nicht unbeding das, was man/der TE unter einer strukturierten ASCII-Datei versteht.

Sir Rufo 11. Jan 2015 12:54

AW: Wie würdet Ihr das lösen?
 
Der strukturelle Aufbau der Datei ist in diesem Zusammenhang doch sowas von schnurzpiepe.

Wäre irgendetwas an der Frage anders, wenn es sich um eine XML, ein sonstwie geartetete Binärdatei handeln würde?

Nein, denn der Ablauf bleibt immer gleich.

Irgendwas liest die Informationen aus der Datei in eine sinngebende Struktur.
Die Informationen in der Struktur werden bearbeitet und möglichst deren Plausibilität gewahrt.
Die Informationen der Struktur werden gespeichert.

Kralle 11. Jan 2015 13:01

AW: Wie würdet Ihr das lösen?
 
Hallo Sir Rufo,

Zitat:

Zitat von Sir Rufo (Beitrag 1286211)
Auf jeden Fall würde ich die Daten nicht in den Controls verwalten/halten, sondern in entsprechenden Daten-Containern (Klassen).

wie würde so was aussehen, wenn die Daten nachher in der Ascii diese Stuktur haben:

Fortlaufende Zeilennummer, Codenummer, Beschreibung, Vorbelegung

Wie ich sowas in eine Stringliste, ein StringGrid oder eine MyBase-Tabelle bekomme weiß ich, aber wie soll das mit einer Klasse gehen?

Die Daten werden nur in die Datei geschriben und nicht von dort gelesen und dann weiterbearbeitet.

Gruß Heiko

Sir Rufo 11. Jan 2015 13:12

AW: Wie würdet Ihr das lösen?
 
Wie sehen denn die Vorgaben aus, bzw. was steht dort konkret nachher drin und wie muss es dort drin stehen?

Da müsstest du ja eine Information zu haben.

Also woher weißt du, wohin der Wert von Edit64 in diese Datei kommt?

Dieses Wissen teilst du der Klasse mit ;)

jobo 11. Jan 2015 13:18

AW: Wie würdet Ihr das lösen?
 
Mir scheint, das Problem ist nicht die ASCII Struktur, sondern die derzeit fehlende oder unklare Struktur in der Präsentation, und daraus folgend das fehlende Mapping auf die ASCII Struktur.
Mach Dir bitte klar, dass es erstmal nie um die Frage mybase, ASCII oder binäre records geht- wie Sir Rufo schon schrieb- und auch nie an erster Stelle um die Darstellung- die ja anscheind schon "gegeben" ist.

Du hast Daten(strukturen), die in irgendeiner Form gespeichert und ggF. verarbeitet werden.
Du hast ebenso eine Präsentation dieser Daten im GUI, die Form der Darstellung ist auch hier sekundär. Von Tortengrafik über Stringgrids bis 3D Animation, alles möglich.

Da Du davon sprichst, dass die zu speichernden Daten nie gelesen werden müssen, dient Dein jetziges Programm offenbar der Eingabe?
Mache eine Aufstellung der einzugebenden (zu speichernden) Daten.
Lege Dir Klassen an, die diese Daten aufnehmen und wie gewünscht wegschreiben können.
An der Stelle äußere ich mal den Verdacht, dass es innerhalb Deiner Daten Abhängigkeiten gibt, die zu den von Dir geschilderten Schwierigkeiten führen. Bei der Klassenkonstruktion musst Du das also berücksichtigen.
Lege darüber eine GUI Schicht zur Eingabe und Darstellung.

Kralle 11. Jan 2015 13:25

AW: Wie würdet Ihr das lösen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

Zitat:

Zitat von Sir Rufo (Beitrag 1286223)
Wie sehen denn die Vorgaben aus, bzw. was steht dort konkret nachher drin und wie muss es dort drin stehen?

Da müsstest du ja eine Information zu haben.

Also woher weißt du, wohin der Wert von Edit64 in diese Datei kommt?

Dieses Wissen teilst du der Klasse mit ;)

Also ich weiß das Daten die nachher in der Datei stehen, als erstes die Informationen vom Sheet 1 bekommen, dann die vom Sheet 2 usw.

Die Zeilennummern dürfen am Ende KEINE Lücken aufweisen

Manche Sheets und deren Objekte dürfen aber auch nur dann aktiv sein wenn auf den vorherigen Sheets bestimmte Bedingungen erfüllt sind.

Gruß HEiko

mm1256 11. Jan 2015 13:29

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.
- Aber, so einfach ist das auch nicht, wenn man bedenkt das ja durch Ändern eines Radiobuttons sich auch Inhalte ändern. Oder durch Änderungen in einem Edit.

So ungeschickt ist der Ansatz doch gar nicht. Ich würde die Tag-Property der Komponenten verwenden, um den Index in der Stringliste festzulegen, und somit können mehrere Edit's, Checkboxen...was auch immer, einen eigenen oder auch einen gemeinsamen Wert im StringGrid ändern/zuweisen.

EDIT: Sorry, hat sich mit dem vorherigen Beitrag überschnitten. Ist dann doch keine so gute Idee


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr.
Seite 1 von 5  1 23     Letzte »    

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