AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

"Rechnen mit INI Dateien"

Ein Thema von moelski · begonnen am 9. Feb 2007 · letzter Beitrag vom 9. Feb 2007
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

"Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 07:10
Moin !

Ich weiss die Überschrift ist etwas aber naja, ich schreib mal was ich meine

Also, wir möchten bald in unserer Software ein Openformat definieren. Bedeutet, ein Gerät kann anhand dieses Formates Daten an unsere Anwendung senden und die werden ausgewertet. Es geht dabei um serielle Daten. Einfaches Beispiel:
$t;X1;X2<cr><lf>

Soweit noch alles klar. Nun wird in einer INI Datei definiert was die Daten denn genau bedeuten. Also in etwa so:
t Zeitweit
X1 Spannung in mV
X2 Strom in mA

Als Ergebnis kann unsere Anwendung dann die Daten visualisieren. Bis hierhin ist das noch alles recht easy. Nun möchten wir aber auch einzelne Werte miteinander verrechnen können. So würde ja z.B. X1 * X2 die Leistung (W) ergeben. Oder der Strom über die Zeit gesehen die Ladung mAh.

Da ergeben sich aber nun folgende Fragen.
1) Wie gibt man in einer INI Datei solche Berechnungen am sinnvollsten an? Als String nach dem Motto "X3 = X1 * X2"?
2) Wie wertet man sowas in seiner Anwendung am besten aus? Gibts für sowas bestehende Units die man verwenden könnte?
3) Wie macht man das am geschicktesten mit den Variablen im Programm? Weil angenommen ich schreib in die INI X1 * X2. Dann muss ja die Anwendung erstmal ermitteln was X1 und X2 denn genau ist (also was sind die entsprechenden Variablen im Programm). Man müsste da also einen Wust von Überprüfungen vornehmen, oder liege ich da falsch? Wie kann man sowas am besten lösen?

Vielleicht hat ja jemand ne brauchbare Idee
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: "Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 08:00
Hi,

ganz gerafft hab ich es noch nicht, aber hier mal ein Ansatz für ne Inni.

Jede Berechnung bekommt einen eindeutigen Bezeichener. Dass kann in deinem Beispiel $t sein. damit machst du eine Sektion auf:
[$t]

Die Werte werden dann als Einträge gespeichert.
[$t]
X1=1
X2=3

Willst du eine Formel abspeichern, dann bleibt dir imho nichts anderes übrig als einen eigenen Interpreter zu schreiben. X1 und X2 können an Hand der einträge erkannt werden. Die mathematischen Zeichen mußt du selber erkennen (* / ...).

[$t]
X1=1
X2=3
Formel=X1*X2

[$..]
...

Wie flexibel du nun das Lesen gestaltest bleibt dir überlassen. Entweder du kennst die Parameter, dann kannst du mit ReadFloat('$t', 'X!', 0) , readInteger ... direkt auf die Variablen zugreifen odere du liest sie gesamte Section und zerlegst alles einzeln.

Ich hoffe ich konnte etwas helfen,

Gruß oki
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: "Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 08:09
Moin !

Ok, ich lese aus deiner Antwort das ich das wirklich alles parsen / interpretieren muss. Herrje das wird aber ein Akt ...
Nuja muss ich dann wohl durch.

Zitat:
ganz gerafft hab ich es noch nicht,
Ok, ich erkläre es nochmal kurz.

Die INI Datei beschreibt die Daten die über die serielle Schnittstelle reinkommen.
Also in der INI steht dann z.B.
$t = Zeit mit der Einheit Sekunden
X1 = Spannung in mV
X2 = Strom in mA
getrennt sind die einzelnen Werte durch ";"

Nun kann also ein Gerät einen String an unsere Anwendung senden der dann so aussehen kann:
$10;12030;1250<cr><lf>

Das würde unser Prog dann so interpretieren:
Timestamp ist 10 Sekunden
12,030 Volt
1,250 Ampere

So und dann kämen eben die berechneten Werte die wir in der INI definieren möchten.
Als Bsp: X1 * X2

Unser Prog muss dann also 12,030 Volt * 1,250 Ampere rechnen und das ergibt 15,0375VA bzw. Watt.

Und die Frage ist eben (aber das hast du ja schon beantwortet) wie man am geschicktesten diese Formeln hinterlegen kann in einer INI und wie die Anwendung das am besten umrechnen / umsetzen kann.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von yörsch
yörsch

Registriert seit: 10. Jan 2007
Ort: Lampertheim
206 Beiträge
 
Delphi XE2 Architect
 
#4

Re: "Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 09:26
... eine verschlimbesserung :

[$t]
X1=1
X2=3
X3=Formel1
Formel1=X1*X2

[Dimensionen]
X1 = V
X2 = mA
X3 = W
...
Jörg
have FUN
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5

Re: "Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 14:26
Hi yörsch,

wenn schon verschlimmbessern, dann vollständig:

[Berechnung1]
$t=1
X1=1
DimensionenX1=V
X2=3
DimensionenX2=mA
X3=Formel1
DimensionenX3=W
Formel1=X1*X2

[nächster Eintrag]
....

Somit bleibt alles in seiner Rubrik. Der nächte Berechnungseintrag hat sonst seine Probleme mit den Dimensionen.

Um das Thema mit dem Parser zu umgehen; Muß die Formel in die Ini?

gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: "Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 21:31
Hi!

Sind die möglichen Formeln vorher bekannt?

Dann wäre es ja ein einfaches, die Formeln als Funktionen zu definieren und dann nur in der Ini-Datei zu vermerken, welche Funktion aufzurufen ist...


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: "Rechnen mit INI Dateien"

  Alt 9. Feb 2007, 22:01
man kannm auch den Hier im Forum suchenHAM Parser oder den Hier im Forum suchenecqp (beide von Dax) verwenden...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:46 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