AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Der HAM-Parser
Thema durchsuchen
Ansicht
Themen-Optionen

Der HAM-Parser

Ein Thema von Dax · begonnen am 26. Dez 2005 · letzter Beitrag vom 17. Jan 2014
Antwort Antwort
Seite 6 von 8   « Erste     456 78      
Dax
Huhu

Ich hab wieder zugeschlagen ^^ und noch einen Matheparser gebaut

Das Ding heißt HAM (fragt nicht wofürs steht, ich muss mir noch was einfallen lassen ) und ist mal wieder meinem Perfektionismus entsprungen. Der ECQP war einfach nicht so ganz das wahre, also hab ich den gebaut. (Und weil ich quasi versprochen habe, es zu tun ^^)

Also dann.. Ein Archiv sagt mehr als tausend Worte, oder? Eins mit dem gesamten Sourcecode (jämmerlich kommentiert) und (bis jetzt) drei Demos (ganz schön schön kommentiert ) ist im Anhang. Weitere Demos, unter anderem zu den Plugins () werden noch Folgen.

*SCHINKEN zum zerfleddern bereit hinstell* (warum denkt ihr bei dem Namen auch immer ans essen? )
Angehängte Dateien
Dateityp: zip ham_124.zip (28,0 KB, 709x aufgerufen)
 
bg 11
 
#51
  Alt 24. Feb 2006, 18:54
super!! Danke!! Klassssse!! Die Demo/ das Bsp hab ich nicht und jetzt wird mir alles klar!!!!

mfg
  Mit Zitat antworten Zitat
bg 11
 
#52
  Alt 24. Feb 2006, 19:08
Woher hast du diese Demo....? Ich durchsuche gerade das Forum und verstricke mich im Wirrwar.....
Danke für eure Hilfe....
  Mit Zitat antworten Zitat
Alt 24. Feb 2006, 19:16     Erstellt von mindforce
Dieser Beitrag wurde von Sharky gelöscht. - Grund: Ich möchte echt kein OT mehr lesen müssen
Alt 25. Feb 2006, 10:39     Erstellt von bg 11
Dieser Beitrag wurde von Sharky gelöscht. - Grund: und dadurch wurde auch dieser deaktiviert.
bg 11
 
#53
  Alt 25. Feb 2006, 10:59
Ich bin immer noch dabei den TCQ-Parser in mein Programm zu integrieren, kam gerade nen Schritt weiter, stehe aber vor dem nächsten Problem: Delphi scheint den Befehl parser.registervariable nicht zu erkennen!! Ich weiß nicht warum!! Kann jemand mir einen Tipp geben??
Hab nen Screenshot gemacht... Siehe Anhang..

Danke,
Miniaturansicht angehängter Grafiken
registervariable_wird_nicht_erkannt____145.jpg  
  Mit Zitat antworten Zitat
Alexander

 
Turbo Delphi für .NET
 
#54
  Alt 25. Feb 2006, 12:07
Moin,
am besten ist es wohl, wenn du einen neuen Thread eröffnest. Hier geht's ja eher um den "HAM-Parser" von Dax.
Damit dir dieser Post noch was nützt: http://www.delphipraxis.net/internal...ghlight=parser
Der Anhang im ersten Post beinhaltet auch eine Demo. Die kannst du ja mal laden . Dann dürften deine Fragen eigentlich geklärt sein.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#55
  Alt 26. Jan 2007, 11:31
Ich hatte zuerst mit deiner Vorgängerversion programmiert, aber nun wollte ich HAM nehmen, weil ich es eh nicht komplieren brauch...

Was muss ich jetzt nun zum alten Parser beachten?
Also was muss ich registrieren etc...

[edit]Ich habe schon gesehen, dass man +/-/*///^ registieren muss... [/edit]
Fabian
  Mit Zitat antworten Zitat
Dax
 
#56
  Alt 26. Jan 2007, 11:39
Huch, is das schon lange her... Weiß schon bald selbst nicht mehr, wie das Ding funktioniert. Grundsätzlich musst du nur registrieren, was du brauchst. Also die Standardoperatoren +, -, * und / sowie einige Funktionen und wahrscheinlich Variablen. Zu den Demos gehört eine Unit mit allen dieser Standardoperatoren, vielleicht hilft dir das schon weiter. Funktionen registrieren sollte ähnlich gehen... Frag am besten mal DGL-luke, der dürfte von HAM mittlerweile mehr Ahnung haben als ich^^
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#57
  Alt 26. Jan 2007, 11:50
Zitat von Dax:
Huch, is das schon lange her...
Kennste ein besseren ^^

Zitat von Dax:
Weiß schon bald selbst nicht mehr, wie das Ding funktioniert. Grundsätzlich musst du nur registrieren, was du brauchst. Also die Standardoperatoren +, -, * und / sowie einige Funktionen und wahrscheinlich Variablen. Zu den Demos gehört eine Unit mit allen dieser Standardoperatoren, vielleicht hilft dir das schon weiter. Funktionen registrieren sollte ähnlich gehen... Frag am besten mal DGL-luke, der dürfte von HAM mittlerweile mehr Ahnung haben als ich^^
Okay... Ich werds mir angucken...
@ Luke: lol ^^
Fabian
  Mit Zitat antworten Zitat
Dax
 
#58
  Alt 26. Jan 2007, 11:57
Zitat von xZise:
Kennste ein besseren ^^
Für Win32 keinen kostenlosen, der Funktionalität in diesem Umfang bietet.. Aber das muss nichts heißen Hab mit Delphi schon seit gefühlten Jahrzehnten nix mehr gemacht
  Mit Zitat antworten Zitat
mschnell
 
#59
  Alt 2. Jul 2007, 13:42
Hi Dax,

Wir verwenden gerade Deinen HAM Parser im Rahmen eines größeren Projektes (das wir hier auch demnächst veröffentlichen wollen).

Dabei haben wir einen kleinen Bug gefunden.

In HAM_Main bei der Funktion THAMParser.GetVarByIndex müsste die Zeile

  if not ((Index < 0) or (Index >= fFunctions.Count)) then
richtiger Weise

  if not ((Index < 0) or (Index >= fVariables.Count)) then ebenso müsste bei THAMParser.GetOpByIndex

vermutlich auch

  if not ((Index < 0) or (Index >= fOperators.Count)) then stehen.

-Michael
  Mit Zitat antworten Zitat
mschnell
 
#60
  Alt 2. Jul 2007, 14:08
Hi Dax again,

Wir basteln an einem Programm bei den man eine Formel für eine Funktion eingeben kann und das dann diverse in dieser Funktion enthaltene Parameter p0...pm so bestimmt, dass die Kurve möglichst genau eine Menge von vorgegebenen Punkten repräsentiert (nichtlineare Ausgleichsrechnung).

Hierzu muss die Funktion natürlich zig tausend mal mit unterschiedlichem x und mit unterschiedlichen Parametern p0...pm ausgewertet werden. Dazu ist der HAM Parser excellent geeignet, da er ja nicht bei jedem Aufruf den Text interpretiert, sondern auf einer entsprechend vorbereiteten Struktur arbeitet.

Wir benutzen nun VariableByIndex[i].Value um x und die p's vor der Auswertung zu setzen.

Eigentlich wäre es praktischer und vermutlich schneller, die x und p's als externe Funktionen aufrufen zu lassen. Der HAM-Parser kann aber keine Funktionen ohne Parameter aufrufen.

Gibt es vielleicht doch eine bessere Möglichkeit als VariableByIndex[i].Value ?

Gruß,

-Michael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 8   « Erste     456 78      


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 12:34 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