About
Shop
LaTeX
Free Software
Books
News
Contact
Blog
News (2017-09-10): New application bib2gls for use with glossaries-extra.sty.

Bug Tracker

ID 23
Status Closed (not a bug)
Category datatool
Version 2.13
Interpreter N/A
Summary Only the second row works not the first

Report

I cant iterate through row 1 of the database, I dont know why, have tried to describe as good as possible the problems. its an MW(N)E including the description of the problem... Best regards Peter

MWE

\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}

Evaluation:

This isn't a bug in datatool. Your database file separates entries using <space>&<space>, but you've set the separator to just & which means a spurious space is being added to the data base values. The default math processor (fp.sty) can't cope with that space in \temperatur, which is what's causing the problem. The simplest solution is to use pgfmath instead of fp as pgfmath can cope with the space.
\usepackage[math=pgfmath]{datatool}

Watch This Report

If you would like to be notified whenever updates are made to this report, please fill in your email address in the box below and click on "Notify Me of Changes". (Please ensure the address is valid.) Your details won't be passed on to third parties in line with this site's Privacy Policy.

Comments

If you would like to add a comment regarding this bug report, please fill in the form below, but don't use it for a different bug or feature request, even if it's related. Instead fill out a new bug report or feature request. (If you want to link it to this report, make a note of the ID number at the top of the page.)

Name (Optional)
Comment

You can use the following markup:

[pre]Displayed verbatim[/pre]
[tt]monospace font[/tt]
[url]web address[/url]

which will be converted to:

<pre>Displayed verbatim</pre>
<tt>monospace font</tt>
<a href="web address">
web address</a>

I'm sorry, some spammers have cracked the captcha and genuine comments were being hidden in the midst of spam, so I've replaced the captcha with this test: Please enter the ID number of this report in the confirm ID box below.

Confirm ID: (The number at the top of this page.)

Return to Search Results


The free software provided here (including my class files and packages on CTAN) are funded by my book sales. While I'm keen to remove bugs from my code, book production has to take priority over bug fixes, so please don't expect a rapid response.

Version numbers that end with "b" indicate a beta (prototype) release. Version numbers that end with "a" indicate an alpha (unstable) release.

© 2012 Dickimaw Books. "Dickimaw", "Dickimaw Books" and the Dickimaw parrot logo are trademarks. The Dickimaw parrot was painted by Magdalene Pritchett.

Terms of Use Privacy Policy Site Map FAQs