Bug Tracker
I’m currently working on a major new version of the datatool package. This may take a while. Please be patient. (Experimental version available for testing.)
ID | 23🔗 |
---|---|
Date: | 2013-03-29 12:57:19 |
Status | Closed (Not a Bug) |
Category | datatool |
Version | 2.13 |
Summary | Only the second row works not the first |
Sign in to subscribe to notifications about this report.
Description
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
Download (2.14K)
\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}
Comments
0 comments.
Add Comment
Page permalink: https://www.dickimaw-books.com/bugtracker.php?key=23