Variablenzuweisung mit csvreader

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Variablenzuweisung mit csvreader

von u_fischer » Mo 10. Aug 2015, 11:57

Ich verstehe euch ja manchmal nicht. Wieso verkomplizierst du dein Beispiel mit zwei Ebenen und einer zusätzlichen Bool-Variable?
\documentclass[a4paper,12pt,oneside]{scrbook}

\usepackage{csvsimple}
\usepackage{ifthen}
\newcommand{\aktModul}{noName}
\begin{document}
%
\chapter{Auswertung}\label{result}
%
\csvreader[head to column names]{error.csv}{}%
{
   Modul:~\aktModul~(\modul)
   % Handelt es sich um einen neuen Modulnamen?
   \ifthenelse{\equal{\aktModul}{\modul}}
   {
      S1~NEIN~-- 
   }
   % Modul hat sich gewechselt
   {
      S1~JA~--
   }
  \expandafter\let\expandafter\aktModul\modul
  \par
}
\end{document}

Variablenzuweisung mit csvreader

von Furay » Mo 10. Aug 2015, 10:49

Hallo Zusammen,

vielleicht könnt Ihr mir weiter helfen, ich möchte mithilfe des package csvsimple eine Überschriftenstruktur automatisch gernerieren. Hierzu werden die ersten beiden Spalten in der CSV tabelle mit dem gespeicherten Werten (\aktModul und \aktTech) verglichen.

Hat sich der Wert geändert, soll eine neuer Überschrift bzw. Unterüberschrift gerneriert werden.

Leider scheint die Neuzuweisung mit \renewcommand wie einen Pointerzuweisung zu funktionieren, denn nach der ersten Zeile sind beide Variablen immer identisch. Denn es wird nur eine Überschrift und eine Unterüberschrift generiert.
% allgem. Dokumentenformat
\documentclass[a4paper,12pt,oneside]{scrbook}

%für für CSV einlesen
\usepackage{csvsimple}

%für If und schleifen
\usepackage{ifthen}

%Definitionen und zuweisungen
\newcommand{\aktModul}{noName}
\newcommand{\aktTech}{}
\newboolean{boolvar} %Deklaration
\setboolean{boolvar}{false} %Zuweisung

\begin{document}
%
\chapter{Auswertung}\label{result}
%
\csvreader[head to column names, late after line=\\]{erros.csv}{}%
{
	Modul:~\aktModul~(\modul) ~Tech:~\aktTech~(\techpak)\\
	% Handelt es sich um einen neuen Modulnamen?
	\ifthenelse{\equal{\aktModul}{\modul}}
	{
		S1~NEIN~--
		%
		% Ist tech anderes?
		\ifthenelse{\equal{\aktTech}{\techpak}}
		{
			S2~NEIN~--
		}
		{
			S2~JA~--
			\textbf{ZU}\\
			\renewcommand{\aktTech}{\techpak}
			\subsection{\techpak}
			%
			\textbf{AUF}\\
		}
	}
	% Modul hat sich gewechselt
	{
		S1~JA~--
		\ifthenelse{\boolean{boolvar}}
		{
			\textbf{ZU}\\
		}
		%
		\renewcommand{\aktModul}{\modul}
		\renewcommand{\aktTech}{\techpak}
		\setboolean{boolvar}{true}
		\section{\modul}
		\subsection{\techpak}
		%
		\textbf{AUF}\\
}
% Zeile hinzufügen
% Datenzeile
}
\textbf{ZU}\\
%
\end{document}
Die error.csv sieht folgendermaßen aus.
modul,techpak
FOLGE1,BASE
FOLGE1,BASE
FOLGE1,BASE
FOLGE1,WPS
FOLGE1,WPS
FOLGE123,BASE
FOLGE123,BASE
FOLGE124,BASE
MAKRO50,BASE
MAKRO84,NONE
MAKRO85,NONE
UP101,WPS
UP206,NONE
Ich würde folgende Überschriftenreihenfolge warten:

FOLGE1
+ BASE
+ WPS
FOLGE123
+ BASE
FOLGE124
+ BASE
MAKRO50
+ BASE
MAKRO84
+ BASE
MAKRO85
+ BASE
UP101
+ WPS
UP206
+ NONE

Grüße

Furay

Nach oben