AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie würdet Ihr das lösen?

Ein Thema von Kralle · begonnen am 11. Jan 2015 · letzter Beitrag vom 17. Jan 2015
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#1

Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 13:00
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
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

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

  Alt 11. Jan 2015, 13:08
Auf jeden Fall würde ich die Daten nicht in den Controls verwalten/halten, sondern in entsprechenden Daten-Containern (Klassen).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
pelzig
(Gast)

n/a Beiträge
 
#3

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

  Alt 11. Jan 2015, 13:34
Eine INI-Datei ist doch eine struktuierte ASCII-Datei.

MfG
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

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

  Alt 11. Jan 2015, 13:39
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

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

  Alt 11. Jan 2015, 13:54
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#6

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

  Alt 11. Jan 2015, 14:01
Hallo Sir Rufo,

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
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

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

  Alt 11. Jan 2015, 14:12
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

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

  Alt 11. Jan 2015, 14:18
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#9

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

  Alt 11. Jan 2015, 14:25
Moin,

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
Miniaturansicht angehängter Grafiken
programmiervorgaben.jpg  
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

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

  Alt 11. Jan 2015, 14:29
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
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS

Geändert von mm1256 (11. Jan 2015 um 14:32 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 Uhr.
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