我有不同长度的 CSV 文件。例如
a,b,c,d,e
0,0, 5, 5, 1
0,5, 5, 11, 2
0,11, 5, 16, 1
5,0, 10, 6, 1
5,6, 10, 11, 2
我想获取c
和d
列的最后一个元素的值,例如c
=10 和d
=11。每次使用不同长度的不同文件。我正在使用该datatool
包。
\DTLloaddb[
headers={a,b,c,d,e},
keys={a,b,c,d,e}
]{data}{input}
.....
....
\DTLforeach*{data}{\a=a,\b=b,\c=c,\d=d,\e=e}{
......
...
\eappto\mydraws{[gray, fill=\k,line width=0.05cm] (axis cs:\a,\b) rectangle (axis cs:\c,\d);}%
}
我不知道如何才能访问特定列的最后一个元素。
答案1
您可以直接遍历数据库,将全局变量设置为适当的列条目,最后它将包含最后一个条目:
代码:
\documentclass{article}
\usepackage{datatool}
\usepackage{filecontents}% Comment to prevent overwriting MyData.csv
\begin{filecontents*}{MyData.csv}
a, b, c, d, e
0, 0, 5, 5, 1
0, 5, 5, 11, 2
0,11, 5, 16, 1
5, 0, 10, 6, 1
5, 6, 10, 11, 2
\end{filecontents*}
\newcommand*{\LastC}{}%
\newcommand*{\LastD}{}%
\begin{document}
\DTLloaddb[%
headers={a,b,c,d,e},%
keys={a,b,c,d,e}%
]{myDB}{MyData.csv}
\DTLforeach*{myDB}{\CurrentA=a,\CurrentB=b,\CurrentC=c,\CurrentD=d,\CurrentE=e}{%
\xdef\LastC{\CurrentC}
\xdef\LastD{\CurrentD}
}
LastC = \LastC, and LastD = \LastD
\end{document}