Hi.
Sieht nach meiner Standard-Schwäche aus: Ich hab' nicht konkret genug beschrieben, was ich eigendlich machen will und warum. Aber der Reihe nach:
Zitat:
Was hältst Du von 'ner ini-Datei?
Wenig, denn ich will ja gerade einen Datei-Cache implementieren. Voreinstellungen für Dialoge oder Benutzer-Eingaben, Programm-Einstellungen und Applikations-relevante Daten liegen ja immer in haufenweise Dateien herum - ist zumindest bei mir so. Werden die Daten jetzt beim Initialisieren des Programms aufbereitet, dann würde ich diese Ergebnis gerne im Speicher halten, denn die Daten werden durchaus häufiger abgefragt. Wichtig scheint mir auch, darauf hinzuweisen, dass es natürlich keinen Sinn macht Daten zu cachen, wenn sie nur von einem Befehl oder einer Routine benutzt werden. Mir geht's hier um Applikationen, bei denen der Anwender hin und wieder mal einen AutoCAD-Befehl aufruft, aber in der Regel mit dem Befehlen der Applikation selbst arbeitet.
Bisher arbeiteten meine Programme nach folgendem Muster:
Code:
(1) Check: Alle benötigten Daten schon im BlackBoard?
JA -> freuen
NO -> aus Dateien zusammensuchen, aufbereiten und in BB schreiben (2) Befehl ausführen - bei Bedarf Daten aus BB holen
Die Vorteilen lagen für mich auf der Hand:
- Datei-Inhalte müssen nur einmal pro ACAD-Session auf Korrektheit geprüft werden
- Datei-Inhalte müssen nur einmal pro ACAD-Session in Programm-DatenStrukturen übersetzt werden
- keine überflüssigen Datei-Zugriffe mehr - gerade bei zentral im Netz abgelegten Konfigurations-Dateien oder DatenBank-Zugriffen sinnvoll
Wegen akuter Langsamkeit - hier auch die Frage, ob's auch sonst noch jemand beobachtet hat - fällt aber das BB für größere Tabellen unter 2004 flach.
Also speiche ich jetzt innerhalb eines Zwischenschritts meine Daten zusätzlich im DocumentNameSpace, d.h. ich benutze globale Variablen, die auch nach Abschluss des Befehls erhalten lesbar bleiben, damit zumindest ein Teil der Vorteile von voher erhalten bleibt.
Zitat:
Was ist er denn nu? global oder NICHT Zeichnungsübergreifend?
Das - hoffe ich - klärt sich nun auch: Beides, nennen wir's mal Super-Globals.
Und genau darum geht es mir! Ich würde gerne ein - zumindest von den an der Diskussion und Entwicklung Beteiligten - akzeptiertes Konzept für diese Super-Globals entwerfen und anschließend ein Verwaltungs- und Abfrage-Modul fertig stellen, mit dem über eine Hand voll Funktionen der Zugriff auf diese Daten ermöglicht wird.
Wie sieht's aus? Jemand Interesse? Oder hab' ich wieder zu fabulös 'rumgelabert?
Achim Dabrunz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP