40 likes | 112 Vues
Vorbereitung: -Aus der Steuerdatei elemente.dat werden die Definitionen der Elementtypen eingelesen und im Hash %elementtypen gespeichert. -Die in der Steuerdatei [ projekt] .unify aufgelisteten Elementnummern der vereinten Elemente werden eingelesen.
E N D
Vorbereitung: -Aus der Steuerdatei elemente.dat werden die Definitionen der Elementtypen eingelesen und im Hash %elementtypen gespeichert. -Die in der Steuerdatei [projekt].unify aufgelisteten Elementnummern der vereinten Elemente werden eingelesen. -Die alte SQD-Datei wird eingelesen und in eine interne Datenstruktur( %daten-Hash) übersetzt. Der %daten-Hash repräsentiert während der Rückübersetzung den vollständigen und aktuellen Datenbestand im Auslesebereich. D.h. alle Änderungen werden in dieser Datenstruktur vorgenommen; die ausgegebene SQD-Datei wird, abgesehen vom Dateikopf, ausschliesslich aus dieser Datenstruktur aufgebaut. Zum Zweck der Zeitersparnis werden allerdings nur die geänderten Elemente in die Ausgabe-SQD-Datei aufgenommen. Die Elementnummern der betreffenden Elemente werden in vier Listen vermerkt: @ins Liste der einzufügenden Elemente, @del Liste der zu löschenden Elemente, @alt Liste der zu ändernden Elemente, @mad Liste der Master-Elemente, die aufgrund einer geänderten Detailverkettung neu eingelesen werden müssen. OBJEKT_EINFÜGEN (etyp, Koordinaten, Parameter/Deskriptoren+Werte, Master-Enum-Liste) ELEMENT_NEU(neue Deskr) Details notwendig T ELEMENT_NEU(Standarddeskr.) F
ELEMENT_NEU (etyp, Koordinaten, Parameter/Deskriptoren+Werte, Master-Enum-Liste) Gleicher ETYP an der Stelle T F neuen Element hat Standarddeskr. -Hinzufügen zu @ins-Liste, -Hinzufügen zu %daten-Hash, -Hinzufügen jedes Masters aus Masterliste(im %daten-Hash) zu @mad-Liste T F ELEMENT_ÄNDERN(neue Deskr.) ELEMENT_ÄNDERN (enum,Deskr.+Werte ) -vorhandenes Element erhält neue Deskriptorwerte (im %daten-Hash), -enum wird zur @alt-Liste hinzugefügt
OBJEKT_LÖSCHEN (enum) Master vorhanden T F -Hinzufügen des Elements zur @del-Liste -im %daten-Hash wird: -in jedem Detailelement der Eintrag in der Masterliste gelöscht, -in jedem Masterelement der Eintrag in der Detailliste gelöscht. ELEMENT_ÄNDERN(standarddeskr.) Details vorhanden F T Detail vereint F T Weitere Master vorhanden T F
OBJEKT_ÄNDERN(enum, Koordinaten, Parameter/Deskriptoren+Werte) Master vorhanden F T ELEMENT_ÄNDERN(neue Deskr.) Koordinaten geändert T ELEMENT_EINFÜGEN(neue enum,Standartwerte) Jedes Masterelement der alten Masterliste löscht die alte ENUM und ergänzt die neue ENUM in der Detailliste. Hinzufügen jedes Masterelements zur @mad-Liste F ELEMENT_ÄNDERN(neue Deskr) Details vorhanden T Detail von Änderungen betroffen F T ELEMENT_EINFÜGEN(Standardeskr.) F Detail vereint T F Hinzufügen des Elements zur @mad-Liste -ENUM wird aus Masterliste des Details gelöscht -Detail-ENUM wird aus Detailliste des Elements gelöscht OBJEKT_LÖSCHEN(enum)