Im Auslieferungszustand gibt es drei Beispieldatensätze um die Funktionalität verständlich zu machen.


Die Sektion für eine oder mehrerer einfacher Konturen lautet "Contour example protocol".


Folgend der Dateiinhalt der Sektion:


<Format ID="CONTOUR_PROTOCOL_EXAMPLE" Caption="Contour example protocol" RegEx="(?U)Cont1_P1X(\d+)\x5c\Cont1_P1Y(\d+)\x5c\Cont1_P2X(\d+)\x5c\Cont1_P2Y(\d+)\x5c\Cont1_P3X(\d+)\x5c\Cont1_P3Y(\d+)\x5c\Cont1_P4X(\d+)\x5c\Cont1_P4Y(\d+)\x5c\Cont1_P5X(\d+)\x5c\Cont1_P5Y(\d+)\x5c\Cont1_P6X(\d+)\x5c\Cont1_P6Y(\d+)\x5c\Cont1_P7X(\d+)\x5c\Cont1_P7Y(\d+)\x5c\Cont1_P8X(\d+)\x5c\Cont1_P8Y(\d+)\x5c\Cont1_Col([\da-fA-F]+)\x5c\Cont2_P1X(\d+)\x5c\Cont2_P1Y(\d+)\x5c\Cont2_P2X(\d+)\x5c\Cont2_P2Y(\d+)\x5c\Cont2_P3X(\d+)\x5c\Cont2_P3Y(\d+)\x5c\Cont2_P4X(\d+)\x5c\Cont2_P4Y(\d+)\x5c\Cont2_P5X(\d+)\x5c\Cont2_P5Y(\d+)\x5c\Cont2_P6X(\d+)\x5c\Cont2_P6Y(\d+)\x5c\Cont2_P7X(\d+)\x5c\Cont2_P7Y(\d+)\x5c\Cont2_P8X(\d+)\x5c\Cont2_P8Y(\d+)\x5c\Cont2_Col([\da-fA-F]+)\x3b">

       <Var Match="1" Name="Cont1_P1X" />

       <Var Match="2" Name="Cont1_P1Y" />

       <Var Match="3" Name="Cont1_P2X" />

       <Var Match="4" Name="Cont1_P2Y" />

       <Var Match="5" Name="Cont1_P3X" />

       <Var Match="6" Name="Cont1_P3Y" />

       <Var Match="7" Name="Cont1_P4X" />

       <Var Match="8" Name="Cont1_P4Y" />

       <Var Match="9" Name="Cont1_P5X" />

       <Var Match="10" Name="Cont1_P5Y" />

       <Var Match="11" Name="Cont1_P6X" />

       <Var Match="12" Name="Cont1_P6Y" />

       <Var Match="13" Name="Cont1_P7X" />

       <Var Match="14" Name="Cont1_P7Y" />

       <Var Match="15" Name="Cont1_P8X" />

       <Var Match="16" Name="Cont1_P8Y" />

       <Var Match="17" Name="Cont1_Col" />

       <Var Match="18" Name="Cont2_P1X" />

       <Var Match="19" Name="Cont2_P1Y" />

       <Var Match="20" Name="Cont2_P2X" />

       <Var Match="21" Name="Cont2_P2Y" />

       <Var Match="22" Name="Cont2_P3X" />

       <Var Match="23" Name="Cont2_P3Y" />

       <Var Match="24" Name="Cont2_P4X" />

       <Var Match="25" Name="Cont2_P4Y" />

       <Var Match="26" Name="Cont2_P5X" />

       <Var Match="27" Name="Cont2_P5Y" />

       <Var Match="28" Name="Cont2_P6X" />

       <Var Match="29" Name="Cont2_P6Y" />

       <Var Match="30" Name="Cont2_P7X" />

       <Var Match="31" Name="Cont2_P7Y" />

       <Var Match="32" Name="Cont2_P8X" />

       <Var Match="33" Name="Cont2_P8Y" />

       <Var Match="34" Name="Cont2_Col" />


<TestData>Cont1_P1X0\Cont1_P1Y100\Cont1_P2X350\Cont1_P2Y1000\Cont1_P3X700\Cont1_P3Y100\Cont1_P4X1050\Cont1_P4Y1000\Cont1_P5X1400\Cont1_P5Y100\Cont1_P6X1750\Cont1_P6Y1000\Cont1_P7X2100\Cont1_

P7Y100\Cont1_P8X2450\Cont1_P8Y1000\Cont1_Col00ff00\Cont2_P1X0\Cont2_P1Y1000\Cont2_P2X350\Cont2_P2Y100\Cont2_P3X700\Cont2_P3Y1000\Cont2_P4X1050\Cont2_P4Y100\Cont2_P5X1400\Cont2_P5Y1000\Cont2_P

6X1750\Cont2_P6Y100\Cont2_P7X2100\Cont2_P7Y1000\Cont2_P8X2450\Cont2_P8Y100\Cont2_Colff0000;

</TestData>

</Format>



Dieses Protokoll kann beispielsweise verwendet werden, um eine oder mehrere einfache Kontur mit maximal 100 Variablen-Gruppen mit einem einfachen Klartext-String zu verändern.



Als Testdaten ist folgender ASCII-Stream hinterlegt:        

Cont1_P1X0\Cont1_P1Y100\Cont1_P2X350\Cont1_P2Y1000\Cont1_P3X700\Cont1_P3Y100\Cont1_P4X1050\Cont1_P4Y1000\Cont1_P5X1400\Cont1_P5Y100\Cont1_P6X1750\Cont1_P6Y1000\Cont1_P7X2100\Cont1_P7Y100\Co

nt1_P8X2450\Cont1_P8Y1000\Cont1_Col00ff00\Cont2_P1X0\Cont2_P1Y1000\Cont2_P2X350\Cont2_P2Y100\Cont2_P3X700\Cont2_P3Y1000\Cont2_P4X1050\Cont2_P4Y100\Cont2_P5X1400\Cont2_P5Y1000\Cont2_P6X1750\Co

nt2_P6Y100\Cont2_P7X2100\Cont2_P7Y1000\Cont2_P8X2450\Cont2_P8Y100\Cont2_Colff0000;



Die dazugehörige RegExp ist:

(?U)Cont1_P1X(\d+)\x5c\Cont1_P1Y(\d+)\x5c\Cont1_P2X(\d+)\x5c\Cont1_P2Y(\d+)\x5c\Cont1_P3X(\d+)\x5c\Cont1_P3Y(\d+)\x5c\Cont1_P4X(\d+)\x5c\Cont1_P4Y(\d+)\x5c\Cont1_P5X(\d+)\x5c\Cont1_P5Y(\d+)

\x5c\Cont1_P6X(\d+)\x5c\Cont1_P6Y(\d+)\x5c\Cont1_P7X(\d+)\x5c\Cont1_P7Y(\d+)\x5c\Cont1_P8X(\d+)\x5c\Cont1_P8Y(\d+)\x5c\Cont1_Col([\da-fA-F]+)\x5c\Cont2_P1X(\d+)\x5c\Cont2_P1Y(\d+)\x5c\Cont2_P2X(\d+)

\x5c\Cont2_P2Y(\d+)\x5c\Cont2_P3X(\d+)\x5c\Cont2_P3Y(\d+)\x5c\Cont2_P4X(\d+)\x5c\Cont2_P4Y(\d+)\x5c\Cont2_P5X(\d+)\x5c\Cont2_P5Y(\d+)\x5c\Cont2_P6X(\d+)\x5c\Cont2_P6Y(\d+)\x5c\Cont2_P7X(\d+)

\x5c\Cont2_P7Y(\d+)\x5c\Cont2_P8X(\d+)\x5c\Cont2_P8Y(\d+)\x5c\Cont2_Col([\da-fA-F]+)\x3b



Die gefilterten Teildaten werden in verschiedene Variablen aufgeteilt.

Dies geschieht mit folgenden Definitionen:

       <Var Match="1" Name="Cont1_P1X" />

       <Var Match="2" Name="Cont1_P1Y" />

       <Var Match="3" Name="Cont1_P2X" />

       <Var Match="4" Name="Cont1_P2Y" />

       ...

<Var Match="30" Name="Cont2_P7X" />

       <Var Match="31" Name="Cont2_P7Y" />

       <Var Match="32" Name="Cont2_P8X" />

       <Var Match="33" Name="Cont2_P8Y" />

       <Var Match="34" Name="Cont2_Col" />



Der Wert an der ersten erkannten Gruppe wird intern auf die Variable "Cont1_P1X" gemapped, Gruppe zwei demnach auf Variable "Cont1_P1Y" usw. .

Die Variablennamen können Kunden- und Anwendungsspezifisch benannt werden und haben an dieser Stelle nur einen symbolischen Namen.