<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Liebe Liste, 
<div class=""><br class="">
</div>
<div class="">ich habe ein Problem, zu dem mir  bislang keine elegante Lösung eingefallen ist. </div>
<div class=""><br class="">
</div>
<div class="">Ich will eine Variable aufteilen (splitten) und zwar nach jedem Semikolon ; </div>
<div class=""><br class="">
</div>
<div class="">VARIABLE vorher: </div>
<div class="">eins; zwei;drei;vier</div>
<div class=""><br class="">
</div>
<div class="">VARIABLE gesplittet: </div>
<div class="">eins</div>
<div class="">zwei</div>
<div class="">drei</div>
<div class="">vier</div>
<div class=""><br class="">
</div>
<div class="">Kein Problem, ein Skript mit diesem Resultat könnte so aussehen: </div>
<div class="">
<div class=""><br class="">
</div>
<div class="">$$ MODE {}</div>
<div class=""><br class="">
</div>
<div class="">$$ SET/DATA variable1</div>
<div class="">eins;zwei;drei;vier</div>
<div class="">$$ ENDDATA</div>
<div class=""><br class="">
</div>
<div class="">$$ BUILD S_TABLE trenner1 ="|;|"</div>
<div class="">
<div class="">$$ x=SPLIT (variable1,trenner1)</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">x            = *</div>
<div class="">           1 = eins</div>
<div class="">           2 = zwei</div>
<div class="">           3 = drei</div>
<div class="">           4 = vier</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Soweit so gut, machen wir es etwas komplizierter, indem wir ein paar Sonderzeichen an denen *nicht* gesplittet werden soll, einbauen (ç TUSTEP %;C und ein einfaches französisches Anführungszeichen #.;) , ausserdem soll nicht bei Semikola, die
 zwischen Textdelimintoren " stehen, getrennt werden: </div>
<div class="">
<div class=""><br class="">
</div>
<div class="">fünf;"sechs;sieben";#.;a%;cht#.:;neun</div>
</div>
<div class=""><br class="">
</div>
<div class="">Mit dem einfachen Trenner ";" in S_TABLE Trenner1, würde folgendes passieren: </div>
<div class="">
<div class="">x            = *</div>
<div class="">           1 = fünf</div>
<div class="">           2 = "sechs</div>
<div class="">           3 = sieben"</div>
<div class="">           4 = #.</div>
<div class="">           5 = a%</div>
<div class="">           6 = cht#.:</div>
<div class="">           7 = neun</div>
</div>
<div class=""><br class="">
</div>
<div class="">Mit einer S_TABLE, die Ausnahmen definiert, funktioniert es. </div>
<div class="">Nicht berücksichtigt werden Semikola, die zwischen " " stehen; sowie die französischen Anführungszeichen mit linker Spitze und Cedille %; ausgenommen werden: </div>
<div class="">
<div class=""><br class="">
</div>
<div class="">
<div class="">$$ BUILD S_TABLE trenner2=*</div>
<div class="">||"*"|%;|#.;||</div>
<div class="">|;|</div>
</div>
</div>
<div class=""><br class="">
</div>
<div class="">Ergebnis, wie gewünscht: </div>
<div class="">
<div class="">x            = *</div>
<div class="">           1 = fünf</div>
<div class="">           2 = "sechs;sieben"</div>
<div class="">           3 = #.;a%;cht#.:</div>
<div class="">           4 = neun</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Jetzt zum eigentlichen Problem. Meine Nutzer und Nutzerinnen setzen immer mal wieder gerne den doppelten Apostroph (TUSTEP #.").</div>
<div class="">Daran scheitere ich und komme zu meiner Frage: </div>
<div class="">Wie müsste die Definition für den "Trenner" aussehen, damit das folgende Beispiel </div>
<div class=""><br class="">
</div>
<div class="">
<div class="">#."elf#.;;zwölf;dreizehn#.";vierzehn”</div>
</div>
<div class=""><br class="">
</div>
<div class="">wie folgt gesplittet wird: </div>
<div class=""><br class="">
</div>
<div class="">#."elf#.;</div>
<div class="">zwölf</div>
<div class="">dreizehn#."</div>
<div class="">vierzehn</div>
<div class=""><br class="">
</div>
<div class="">Mit dem einfachen Trenner ; passiert das folgende: </div>
<div class="">
<div class="">x            = *</div>
<div class="">           1 = #."elf#.</div>
<div class="">           2 =</div>
<div class="">           3 = zwölf</div>
<div class="">           4 = dreizehn#."</div>
<div class="">           5 = vierzehn</div>
</div>
<div class=""><br class="">
</div>
<div class="">Mit dem für das zweite Beispiel angepassten: </div>
<div class="">
<div class="">x            = *</div>
<div class="">           1 = #."elf#.;;zwölf;dreizehn#."</div>
<div class="">           2 = vierzehn</div>
</div>
<div class=""><br class="">
</div>
<div class="">Hat jemand eine Idee, wie sich das mit einer S_TABLE lösen lässt, die TUSTEP-Sonderzeichen #." %;  #.; berücksichtigt *und* zwischen " " stehende Zeichen nicht splittet (siehe oben S_TABLE trenner2) und sich dabei nicht von #." aus dem Konzept
 bringen lässt. </div>
<div class=""><br class="">
</div>
<div class="">Meine unelegante Lösung tauscht das störende #." in <az/> aus und fügt es anschliessend wieder ein. Das geht, führt aber zu weiteren Problemen. </div>
<div class="">Eleganter wäre es mit einer S_TABLE für alle. </div>
<div class=""><br class="">
</div>
</div>
<div class="">Herzliche Grüße in die Runde </div>
<div class="">Thomas Kollatz</div>
<div class="">
<div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">
<a href="http://orcid.org/0000-0003-1904-1841" class="">http://orcid.org/0000-0003-1904-1841</a></div>
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">
<br class="">
</div>
<br class="Apple-interchange-newline">
</div>
<br class="">
</div>
</body>
</html>