PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Key-Value-Splitting



Stokker
12-12-2008, 11:00
Hallo zusammen,

ich suche nun schon seit einigen Tagen im Web nach einer einfachen und geschmacklosen Lösung für mein Problem. Aber irgendwie komme ich keinen mm weiter.

Ich möchte ein Macro erstellen, dass mir eine einfache "Tabelle" anzeigt. Der Übergabe-Parameter soll das Key-Value-Format mit einer (beliebigen) Anzahl von Werte-Paaren haben. Diese Werte-Paare will ich im Makro in den Key und den Value trennen und dann darstellen.

Mit zwei einfachen Macros kann ich innerhalb des Dokumentes diese Trennung vollziehen:

\def\ExtractKey #1=#2\Del{#1}
\def\ExtractValue #1=#2\Del{#2}

\def\keyval{1a=18}

Key: \expandafter\ExtractKey\keyval\Del \\
Value: \expandafter\ExtractValue\keyval\Del \\

Nur im Macro in einer for-Schleife klappt das nicht.

\newcommand{\mymacro}[1]
{
\@for\keyval:=#1\do{
\keyval \\
Key: \expandafter\ExtractKey\keyval\Del \\
Value: \expandafter\ExtractValue\keyval\Del \\
}
}
}

Wenn ich die beiden unteren Zeilen in der for-Schleife auskommentiere, dann werden mir die einzelnen Key-Value-Paare angezeigt. Sind die beiden Zeilen drin, dann erhalte ich nur Fehlermeldungen.

Wo liegt hier mein Denkfehler bzw. gibt es vielleicht einen anderen Ansatz?

Ich bin für jede Hilfe dankbar.

Stokker

voss
12-12-2008, 12:04
ich suche nun schon seit einigen Tagen im Web nach einer einfachen und geschmacklosen Lösung für mein Problem. Aber irgendwie komme ich keinen mm weiter.


xkeyval.sty

Herbert

Stokker
12-12-2008, 14:40
Das hatte ich mir schon mal kurz angesehen und habe jetzt auch nochmal die pdf studiert. Aber das Problem ist, das ich corher nicht weiß, wie der Key heißt. Also kann ich den auch nicht definieren.

Stokker

Stokker
12-12-2008, 17:05
Ich hab jetzt eine Lösung gefunden. Diese arbeitet ohne zusätzliche Packete.

Falls es jemanden interessiert:


\edef\ExtractKey #1=#2\Del{#1}
\edef\ExtractValue #1=#2\Del{#2}

\def\SplitVK #1
{
\def\MyKey {\expandafter\ExtractKey#1\Del}
\def\MyValue {\expandafter\ExtractValue#1\Del}

\begin{tabbing}
\hspace*{1.4cm}\= \kill
\> ab \MyKey \' \` \MyValue
\end{tabbing}
}