\documentclass{article}

\usepackage{expl3}
\usepackage[ansinew]{inputenc}
\usepackage{datatool}
\usepackage{filecontents} % Ein- oder Auskommentieren, siehe Hinweis unten
\begin{filecontents}{tempdatabb.dat}
10 & 100
20 & 130
30 & 150
40 & 170
50 & 190
60 & 210
\end{filecontents}


\makeatletter
\ExplSyntaxOn
\cs_set_eq:NN \ifinstr \tl_if_in:nnTF
\DeclareRobustCommand*\assignvalues[2]{\@assignvalues{#1}{#2}}
\long \def\@assignvalues#1#2{
  \seq_set_split:Nnn \l_tmpa_seq { | } {#1}
  \seq_set_split:Nnn \l_tmpb_seq { | } {#2}
  \seq_mapthread_function:NNN \l_tmpa_seq \l_tmpb_seq \assignvalues@ii
}
\long \def \assignvalues@ii #1#2 { \protected@csedef{#1}{#2} }
\ExplSyntaxOff
\makeatother



\begin{document}

First problem. I can only search through the second row, not the first.


This workts...


\assignvalues{suchwert}{155}

\DTLsetseparator{&}
\DTLloaddb[keys={temperatur,dichte},noheader]{scoreAAA}{tempdatabb.dat}

\begin{table}[htbp]
\centering
\begin{tabular}{llr}
\bfseries Temperatur & \bfseries Dichte %
\DTLforeach[\DTLislt{\dichte}{\suchwert}]{scoreAAA}%
{\temperatur=temperatur,\dichte=dichte}{%
\\\temperatur & \dichte 
}%
\end{tabular}
\end{table}


this does not work...

\assignvalues{suchwert}{155}

\DTLsetseparator{&}
\DTLloaddb[keys={temperatur,dichte},noheader]{scoreAA}{tempdatabb.dat}

\begin{table}[htbp]
\centering
\begin{tabular}{llr}
\bfseries Temperatur & \bfseries Dichte %
\DTLforeach[\DTLislt{\temperatur}{\suchwert}]{scoreAA}%
{\temperatur=temperatur,\dichte=dichte}{%
\\\temperatur & \dichte 
}%
\end{tabular}
\end{table}

Goal of my piece of code is the search of the nearest value pairs to the suchwert.

for example if the suchwert is 35 (for temperatur, row one) than I would like to make assignments of

\assignvalues{firstpointx}{30} 
\assignvalues{firstpointy}{150}
\assignvalues{secondpointx}{40}
\assignvalues{secondpointy}{170}

in other words: the nearest point smaller to 35, the nearest point bigger to 35 is to access...

but i rather can't find the point during the problem because of the first row problem as described...




\end{document}