-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Geil geil geil :thuimb: !
Ich hätte ja garnicht zu hoffen gewagt, dass man einen Parameter typenlos deklarieren kann! Drüber seniert hatte ich, es aber schnellstens wieder verworfen, da Delphi ja so typstreng ist :roll: (scheinbar wohl nicht ganz so sehr :) )
Dass der Propertyzugriff flöten geht ist absolut egal. Das ist dann nur eine Frage der Dokumentation - kein Problem! Wow, genau so hatte...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Öh, äh, üh --- Halt! Stop! Klappt doch alles wunderbar!
Nur muss man beim Zuweisen und Auslesen der Variablen in/aus einer Parserinstanz ordentlich rumcasten. Ansonsten funktioniert das voll und ganz! Und die Geschwindigkeit leidet NULL drunter. Für mich sieht das im Moment nach der Lösung aus :)
\\edit: D8 und Casts: Ach weisst du... dann lass ich datt mit D8. Ich bin jetzt so glücklich mit...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Japp, ist es :)
Hat seinen Reiz! Ich fürchte nur dass es, wie oben schon mal anklang, dafür schon zu spät ist. Die Änderungen die das nach sich ziehen würde wären ziemlich aufwändig. Das Zuweisungsproblem an sich ist ja jetzt gelöst (du hast gepostet während ich editierte...) - es wäre jetzt halt nur noch schön, wenn der Benutzer des Parsers nicht (wie oben) rum-casten müsste. Sobald das ist,...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Der Cast tut nicht. (Ungültige Typumwandlung)
SetVariable:
procedure TCQParser.SetVariable(VarName: TVarName; const Value: TNumber);
begin
case VarName of
A: case NumberFormat of
nfReal : Ar := double(Value); // dieser Cast geht
nfComplex : Ac := TComplex(Value); // der nicht
nfQuaternion: Aq := TQuat(Value); // der auch nicht...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Ei! Grade erst gesehen! Stimmt... Pixels... ja, da hab ich das auch schon mal gesehen *g*. Mich hat der Typ String als Index so verwundert... aber das ist ja mal nett, dass das geht!
Ich glaube, ich komme jetzt dahinter, wie du das meinst. Das sieht echt gut aus! Da muss ich gleich mal ein wenig fummeln gehen :coder:
(Du bist doch noch länger wach, gelle!? ;) )
Dangöö!
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Ich glaube, du hast mich überzeugt :mrgreen:
Ich lass es dann zunächst so, wie es ist. Das mit den Variablen habe ich mir gerade auch nochmal durch den Kopf gehen lassen: Es wäre natürlich toll ein und den selben Namen für eine Variable mit variierendem Typ zu haben, weil nur ein Typ gleichzeitig vorkommt - nur was täte man damit einem Programmierer an? Man müsste ständig nachhalten, was man...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
20. Mai 2004
Ja leider... Ich versuch da grad nen vertretbaren Mittelweg zu finden :)
Das sieht an sich schon mal ganz nett aus; zumal ich dieses Konstrukt bei den properties noch nie gesehen hab! Das geht? Oder ist das Pseudocode?
Dann müsste ich zwar trotzdem an meinen Typen TComplex und TQuat drehen (die sind z.Zt. nen record und kein array), aber das könnte gehen, so denn der Cast klappt! Einziger...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
19. Mai 2004
Genau dort liegt ja der Hund begraben... Die 3 Parser-Methoden kommen gerade deswegen zu Stande, weil die Addition von zwei komplexen Zahlen nun mal zwei komplexe Operanden als zu verrechnend erwartet - die von 2 Quaternionen TQuats. Und gerade die Implementierung der "normalen" reellen Zahlen unterscheidet sich sehr groß von den anderen beiden Varianten. Eben so, dass jede für sich so performant...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
19. Mai 2004
:mrgreen: Ausgeschlossen. Die eigentlichen Berechungs-Funktionen für komplexe Zahlen/Quats habe ich z.T. mit asm "verschnellert".* Ich bin sau-froh, dass ich das hinbekommen hab. Ich glaube ich will keine Variants mit asm selber behandeln müssen *g*. Zudem ist der Datentyp mit Sicherheit recht langsam, und das würde den gesamten Parser ganz kräftig in den Keller ziehen (ist auf Perfomance...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
19. Mai 2004
:shock: Uffa!
Damit mache ich mir aus einem 3-Zeiler einen 20-Zeiler:
Vorher: (für den reellen Modus)
currentND := TRNode.Create(opAdd);
TTR(anfang(s,'+'), currentND.subNodes);
TTR(ende(s,'+'), currentND.subNodes);
Nachher: (universal mit TObject als "Knotencontainer")
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
19. Mai 2004
An sich keine üble Idee. Mir schien das zunächst komisch, da die Basisklasse identisch zu TObject wäre, da ins Besondere TRNode völlig anders aussieht, als die anderen beiden. Aber hast Recht! So könnte man dran gehen. Dann wird das aber ein irres Rumgecaste im Prozedurrumpf, und die ohne hin schon sehr oft vorkommenden "if's" werden halt noch ein paar mehr :)
(Im Grunde ist der Rumpf fast nur...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
19. Mai 2004
Hallo geschätzte Mit-Delphianer!
Mir stellt sich soeben folgendes Problem:
Ich habe in meiner Parserklasse eine Prozedur, die das Zerlegen eines Strings vornimmt. Nun kann mein Parser mit reellen Zahlen, komplexen, und Quaternionen rechnen. Um ihm mitzuteilen, welchen Zahlentyp man nun benutzen möchte, muss eine entsprechende Property gesetzt werden.
Der String-Zerleger baut die...