file = assert(io.open("Trace.log", "r")) gnuplot = assert(io.open("gnuplot.plt", "w+")) buffer = file:read("*all") gnuplot:write("set terminal jpeg\n") gnuplot:write("set grid\n") for date, time, name, scan in string.gmatch(buffer, "(%d+-%d+-%d+) (%d+:%d+:%d+,%d+) %[%d+%] DEBUG Loadcheck.CLoadcheckScanData <> %- static const int ([%a%d_]+)%[%] = {([^}]+)}") do datafilename = name .. "_" .. date .. "_" .. string.gsub(time, "[:,]", "_") .. ".csv" jpgfilename = name .. "_" .. date .. "_" .. string.gsub(time, "[:,]", "_") .. ".jpg" print(datafilename) datafile = io.open(datafilename, "w+") gnuplot:write("set out '"..jpgfilename.."'\n") gnuplot:write("plot '"..datafilename.."' with lines\n") for value in string.gmatch(scan, "(%d%d%d),") do datafile:write(value); datafile:write("\n"); end datafile:close() end gnuplot:close() file:close()