Hallo Leutz,
ich stehe momentan ziemlich auf dem Schlauch mit einer (wie ich dachte) genialen Konstruktion:
Ich habe komplexe (vorgegebene!) Datenstrukturen zu bearbeiten, die aber in verschiedenen (Struktur)Versionen vorliegen.
Dazu habe ich mir zu den jeweiligen Strukturversionen dazu passende structures angelegt, mit allem drin, was man so für das Handling der Daten braucht.
(Subs fürs initialisieren, schreiben und lesen in/aus Datei, prüfen auf Plausibilität, usw...)
Ein Großteil der Aktionen, die ich mit diesen Daten mache, ist aber immer identisch, sodaß ich mich geärgert habe, trotzdem bei jeder Aktion jedesmal mühselig unterscheiden zu müssen, um welche Version es sich denn nun handelt, um dann auch die richtige -structure- verwenden zu können.
Also habe mir Varis vom Typ Object erstellt, und mache nur einmal einen Verweis auf die passende -structure-, danach ist der Code, welcher dann nur noch mit der Object Vari spielt, immer identisch, da die Subs in den structures für die nötigen Aktionen auch immer die gleichen Namen und Parameter benutzen.
Klappt wunderbar, was das Umgehen mit den Daten selbst angeht, aaaaber:
Tritt in einer Sub der structure dann ein Fehler auf, wird dieser NICHT mehr höher gereicht an die aufrufende Methode!
(In dieser ist aber das Try/Catch Konstrukt, das die Fehler abfangen soll!)
Verwende ich stattdessen die structure direkt, also ohne Object Vari dazwischen, dann funktionierts!
Zwei Lösungen hätte ich schon, aber die gefallen mir gar nicht! (Wegen des extremen Programmieraufwands)
1. Doch immer die original -structure- verwenden, und bei jeder Aktion dann mühselig unterscheiden, welche denn nun benutzt werden muss.
2. Eine "Universal" structure bauen, die mit allen Daten-Versionen umgehen kann, und erst beim initialisieren auf eine bestimmte Version "eingestellt" wird.
Hättet ihr eine andere Lösung? Wie ich zum Beispiel auftretende Fehler auch über einen Verweis hinweg weiter nach"oben" reichen kann?
Stefan
ich stehe momentan ziemlich auf dem Schlauch mit einer (wie ich dachte) genialen Konstruktion:
Ich habe komplexe (vorgegebene!) Datenstrukturen zu bearbeiten, die aber in verschiedenen (Struktur)Versionen vorliegen.
Dazu habe ich mir zu den jeweiligen Strukturversionen dazu passende structures angelegt, mit allem drin, was man so für das Handling der Daten braucht.
(Subs fürs initialisieren, schreiben und lesen in/aus Datei, prüfen auf Plausibilität, usw...)
Ein Großteil der Aktionen, die ich mit diesen Daten mache, ist aber immer identisch, sodaß ich mich geärgert habe, trotzdem bei jeder Aktion jedesmal mühselig unterscheiden zu müssen, um welche Version es sich denn nun handelt, um dann auch die richtige -structure- verwenden zu können.
Also habe mir Varis vom Typ Object erstellt, und mache nur einmal einen Verweis auf die passende -structure-, danach ist der Code, welcher dann nur noch mit der Object Vari spielt, immer identisch, da die Subs in den structures für die nötigen Aktionen auch immer die gleichen Namen und Parameter benutzen.
Klappt wunderbar, was das Umgehen mit den Daten selbst angeht, aaaaber:
Tritt in einer Sub der structure dann ein Fehler auf, wird dieser NICHT mehr höher gereicht an die aufrufende Methode!
(In dieser ist aber das Try/Catch Konstrukt, das die Fehler abfangen soll!)
Verwende ich stattdessen die structure direkt, also ohne Object Vari dazwischen, dann funktionierts!
Zwei Lösungen hätte ich schon, aber die gefallen mir gar nicht! (Wegen des extremen Programmieraufwands)
1. Doch immer die original -structure- verwenden, und bei jeder Aktion dann mühselig unterscheiden, welche denn nun benutzt werden muss.
2. Eine "Universal" structure bauen, die mit allen Daten-Versionen umgehen kann, und erst beim initialisieren auf eine bestimmte Version "eingestellt" wird.
Hättet ihr eine andere Lösung? Wie ich zum Beispiel auftretende Fehler auch über einen Verweis hinweg weiter nach"oben" reichen kann?
Stefan