When I need to draw datapoints from a external data file I’m using lua, like this:
\starttext
\startluacode
Elemento = {}
x = {}
y ={}
z= {}
carga = {}
i=1
context("\\startMPcode”)
context("numeric u; u := 1.5cm;")
local a, b, c, d, e = string.match(line, '(%a+)%s*%s*(%S+)%s*%s*(%S+)%s*%s*(%S+)%s*%s*(%S+)')
Elemento[i]= a
x[i]= tonumber(b)
y[i]= tonumber(c)
z[i]= tonumber(d)
carga[i]= tonumber(e)
context("label(\"%s\", (%0.6f u, %0.6f u));", a, x[i],y[i])
i=i+1
end
context("\\stopMPcode”)
\stopluacode
\stoptext
Is there a way to pass directly the external data to MetaPost without using Lua?
I know that I can use a similar function to gdata from graph.mp. I try to reuse this piece of code, but not works.
\startMPcode
vardef Grdln_@#(expr f) =
save n_, s_; string s_;
s_ = readfrom f;
string @#[];
if s_<>EOF:
@#1 := loptok s_;
n_ = if @#1="%": 0 else: 1 fi;
forever:
@#[incr n_] := loptok s_;
exitif @#[n_]=" ";
endfor
@#1<>" "
else: false
fi
enddef;
\stopMPcode