Pokeys PoBlocks Projekt in ein Anderes kopieren

Hallo,

ich versuche mir gerade die Arbeit zu erleichtern, komme aber nicht weiter, evtl. kann jemand helfen.
Im PoBlocks kann man ja seit geraumer Zeit kopieren, leider funktioniert das nur im aktuellen Projekt, wenn ich also aus Projekt 1 etwas in Projekt 2 kopieren möchte geht das nicht…oder doch?

Ich hab jetzt schon in der XML Datei rum gespielt und komme mehr schlecht als recht weiter.
Das Problem ist, dass natürlich alle Bausteine eine ID haben und die fängt in jedem Projekt mit „0“ an, kopiere ich also P1 in P2 dann sind die ID´s doppelt vergeben.
Nun hab ich händisch zum Testen mal einige ID´s angepasst, vorher die Position der Bausteine im PoBlocks nach rechts unten geschoben, um nicht auch dort noch Überlappungen zu erzeugen.

Naja es funktioniert aber Sinn macht das nur mit einem Script welches die XML Datei durchforsten kann und dann alle ID´s anpasst mit einer Start ID welche von mir festgelegt wird.
Um die Sache noch schwieriger zu gestalten, sind in der XML noch die Verlinkungen („Verdrahtung“), die Konstanten und SharedSlots angeben, welche wiederum abhängig zu den ID´s der Bausteine sind.

Wenn ich also im Abschnitt Blocks Baustein ID 2 in 72 ändere, dann muss das auch in Abschnitt Links/Constants/Shared passend zu den ID´s angepasst werden.

Lange Rede kurzer Sinn, ich bin nicht dazu in der Lange solch ein Script zu schreiben.
Schafft das jemand von euch?

Der Sinn der Aktion ist wie gesagt Zeit zu sparen, vor allem wenn man Projekte mit Anderen teilt, dann muss nicht das ganze Konstrukt nachgebaut werden.

ich versuch es mal einfacher zu erklären… unabhängig vom PoBlock/Pokeys

ich habe folgenden Code:

</Blocks>		
        <block ID="9" type="400" position="180/140">
            <Name>MTor öffnen</Name>
            <Link_ID>14</Link_ID>
        </block>
        <block ID="10" type="108" position="330/100">
            <Name>Shared 1-bit</Name>
            <Default_value>false</Default_value>
            <Retain_on_reset>false</Retain_on_reset>
            <Initial_value>false</Initial_value>
        </block>
        <block ID="11" type="1" position="900/270">
            <Name>Schwingtore zu</Name>
            <Pin_ID>15</Pin_ID>
            <Init_function>true</Init_function>
            <Inverted>true</Inverted>
            <Default_value>false</Default_value>
            <Set_to_default_on_init>true</Set_to_default_on_init>
            <Show_enable_input>false</Show_enable_input>
        </block>
		
		  
</Blocks>
<Links>
	<link ID="9">
            <source type="port" blockID="4" portID="0"/>
            <destination blockID="11" portID="0"/>
            <anchors>
            <anchor ID="0" position="390/500"/>
            </anchors>
        </link>
        <link ID="10">
            <source type="port" blockID="9" portID="0"/>
            <destination blockID="11" portID="0"/>
            <anchors/>
        </link>
        <link ID="11">
            <source type="port" blockID="9" portID="0"/>
            <destination blockID="10" portID="0"/>
            <anchors/>
        </link>
</Links>
<Constants>
        <constant blockID="9" portID="1" value="3500" valueF="0"/>
        <constant blockID="10" portID="1" value="500" valueF="0"/>
        <constant blockID="11" portID="1" value="500" valueF="0"/>
</Constants>
<Shared>
        <slot id="2" rights="3" blockID="9" portID="0"/>
        <slot id="3" rights="3" blockID="10" portID="0"/>
        <slot id="4" rights="3" blockID="11" portID="0"/>

</Shared>

nun müsste ein Script die 9 in eine 70 ändern (wenn ich den Startwert so angebe)
und dann fortlaufend auch die 10 in eine 71 ändern
und die 11 in eine 72 ändern

ich könnte auch den Startwert und den Endwert angeben (sooft die Schleife eben durchlaufen soll)
also 70 Start, 72 Ende dazwischen soll alles angepasst werden.
nun geht es ja einmal um block ID=„9“ und einmal um blockID=„9“, das müsste noch beachtet werden

ich hab das hier mal händisch angepasst, ob das jetzt noch funktionieren würde sei erstmal dahingestellt, es dient nur zur Veranschaulichung.

</Blocks>		
	<block ID="70" type="400" position="180/140">
            <Name>MTor öffnen</Name>
            <Link_ID>14</Link_ID>
        </block>
        <block ID="71" type="108" position="330/100">
            <Name>Shared 1-bit</Name>
            <Default_value>false</Default_value>
            <Retain_on_reset>false</Retain_on_reset>
            <Initial_value>false</Initial_value>
        </block>
        <block ID="72" type="1" position="900/270">
            <Name>Schwingtore zu</Name>
            <Pin_ID>15</Pin_ID>
            <Init_function>true</Init_function>
            <Inverted>true</Inverted>
            <Default_value>false</Default_value>
            <Set_to_default_on_init>true</Set_to_default_on_init>
            <Show_enable_input>false</Show_enable_input>
        </block>
		
		  
</Blocks>
<Links>
	<link ID="70">
            <source type="port" blockID="4" portID="0"/>
            <destination blockID="72" portID="0"/>
            <anchors>
            <anchor ID="0" position="390/500"/>
            </anchors>
        </link>
        <link ID="71">
            <source type="port" blockID="70" portID="0"/>
            <destination blockID="72" portID="0"/>
            <anchors/>
        </link>
        <link ID="72">
            <source type="port" blockID="70" portID="0"/>
            <destination blockID="71" portID="0"/>
            <anchors/>
        </link>
</Links>
<Constants>
        <constant blockID="70" portID="1" value="3500" valueF="0"/>
        <constant blockID="71" portID="1" value="500" valueF="0"/>
        <constant blockID="72" portID="1" value="500" valueF="0"/>
</Constants>
<Shared>
        <slot id="2" rights="3" blockID="70" portID="0"/>
        <slot id="3" rights="3" blockID="71" portID="0"/>
        <slot id="4" rights="3" blockID="72" portID="0"/>

</Shared>

evtl. fällt nun jemandem aus der nicht Pokeysfraktion etwas dazu ein, das wäre zumindest echt toll.

ich hab Notepad++ was schon echt hilfreich ist aber in diesem Fall scheitere ich beim Replace an „n+1“ und sicher auch noch anderen Dingen.