mit
PARTS_LIST TREE DEL_OLD 'c:/temp/pl_tree.txt'
kann der Teilebaum in eine Datei geschrieben werden.
Das aktuelle Teil erkennst Du an dem Stern in eckigen Klammern
Wenn Du also Deine zu ändernde Baugruppe aktiv machst,
könntest Du die Zeilen darunter auslesen,
beginnend mit der Zeile mit Stern. Hier merkst Du dir den Anfang des Namens
(hier im Beispiel NACH 6 Zeichen)
bis eine Zeile kommt, die gleich viel führende Leerzeichen hat
(dies ist nämlich das nächste Teil, das NICHT mehr zu dieser Baugruppe gehört.
Siehe das Bild test3.jpg
Willst Du z.B. die Baugruppe_4 ändern,
überliest Du die Zeile Top (kein Stern)
dann liest Du Baugruppe_4 (Start des Namens nach 6 Zeichen),
bearbeitest diese (der eindeutige Teilename ist der mit der Tilde)
Danach liest Du die nächsten 3 Zeilen (Start nach je 8 Leerzeichen) und bearbeitest diese.
Danach liest Du Zeile Baugruppe_3, stellst fest, Start wieder nach 6 Leerzeichen,
also Baugruppe zu Ende -> Abbruch.
--------------------------------------------
Das untenstehende Makro geht aber ALLE Teile durch und sucht nach
Teilen mit gleichem Namen
DEFINE test
LOCAL eva_TeileName_Aktuell
LOCAL eva_TeileName_Eindeutig
LOCAL Schleife
LOCAL Name_gesucht
READ STRING 'zu suchender Name: ' Name_gesucht
INQ_ENV 8 { Hole hoechste Teilenummer }
LET Schleife (INQ 5)
WHILE (Schleife>0) { alle Teilenummern durchlaufen }
TRAP_ERROR
EDIT_PART ('~'+(STR Schleife)) { editiere Teil }
IF (NOT CHECK_ERROR) { Teil vorhanden? }
INQ_ENV 7
LET eva_TeileName_Aktuell (INQ 301)
LET eva_TeileName_Eindeutig ('~'+ STR(INQ 302))
IF (Name_gesucht = eva_TeileName_Aktuell)
DISPLAY (eva_TeileName_Aktuell+' -> '+eva_TeileName_Eindeutig)
{ hier die gewünschte Änderung machen }
END_IF
END_IF
LET Schleife (Schleife - 1) { naechstes Teil }
END_WHILE
END
END_DEFINE
Ich hoffe, es war einigermassen verständlich.
Gruß Robert
------------------
Homepage: www.me10-makros.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP