Seite 1 von 1

Vergleichen von Strings aus txt File

Verfasst: Fr 13. Jul 2018, 16:51
von Failix
Hallo,

ich möchte zwei Strings miteinander vergleichen wobei der eine String aus einem .txt File ausgelesen werden soll. Bisher habe ich folgendes. Die Datei "imagelist.txt" besteht aus Zeilen in denen jeweils der Filename eines PNG Bildes steht. Zum kompilieren das Minimalbeispiels reicht ein einfaches .txt File mit einer Zeile: "test.png". Außerdem muss glaub ich -shell-escape aktiviert sein. Was bisher funktioniert ist, dass jede Zeile eingelesen wird und in den eigentlichen Namen und die .png Endung getrennt wird. Trotzdem spuckt ifthenelse immer Nein aus.
\documentclass{article}
\usepackage[strings]{underscore}
\usepackage[T1]{fontenc}
\usepackage{ifthen}

\newcommand{\comp}{test}

\begin{document}

	\makeatletter
		\newread\reader
		\openin\reader=imagelist.txt\relax
		\begingroup
			\endlinechar=-1\relax
			\loop
				\readline\reader to \data
				\unless\ifeof\reader
				\filename@parse{\data}  
	
				\filename@base
				\newline
	
				\ifthenelse{\equal{\comp}{\filename@base}}{Ja}{Nein}
				\newline			
				
				
			\repeat
		\endgroup
	\closein\reader
	\makeatother
		
\end{document}
[\code]

Verfasst: Fr 13. Jul 2018, 16:52
von Failix
Ich kann den Beitrag leider nicht bearbeiten, hab ihn vorschnell abgeschickt.
Was fehlt:

Ich freue mich über Anregung und Tipps jeder Art!

Vielen Dank

Verfasst: Fr 13. Jul 2018, 17:11
von Gast
Mit etoolbox' \ifdefstrequal funktioniert es
\documentclass{article}
\usepackage[strings]{underscore}
\usepackage[T1]{fontenc}
\usepackage{etoolbox}


\usepackage{filecontents}
\begin{filecontents*}{imagelist.txt}
lorem
test
ipsum
\end{filecontents*}

\newcommand{\comp}{test}

\begin{document}

   \makeatletter
      \newread\reader
      \openin\reader=imagelist.txt\relax
      \begingroup
         \endlinechar=-1\relax
         \loop
            \readline\reader to \data
            \unless\ifeof\reader
            \filename@parse{\data}  
   
            \filename@base
            \newline
   
            \ifdefstrequal{\comp}{\filename@base}{Ja}{Nein}
            \newline        
         \repeat
      \endgroup
   \closein\reader
   \makeatother
\end{document}

Verfasst: Mo 16. Jul 2018, 09:46
von Failix
Hallo,

vielen Dank dafür! Funktioniert!