function Init() indicator:name("file:lines"); indicator:description("Prints file content using different io methods"); indicator.parameters:addFile("file", "File", "", ""); indicator.parameters:addString("test", "Test method", "", "testFileLines"); indicator.parameters:addStringAlternative("test", "file:lines()", "", "testFileLines"); indicator.parameters:addStringAlternative("test", "io.lines(file)", "", "testIoLines"); indicator.parameters:addStringAlternative("test", "file:read(\"a\")", "", "testFileReadAll"); indicator.parameters:addStringAlternative("test", "file:read(\"*n\")", "", "testFileReadNumber"); indicator.parameters:addStringAlternative("test", "file:read(\"l\")", "", "testFileReadLine"); end local name; local source; function Prepare(onlyName) name = profile:id(); instance:name(name); if onlyName then return ; end source = instance.source; end local tested = false; function Update() if not tested then tested = true; if (instance.parameters.test == "testFileLines") then testFileLines(); elseif (instance.parameters.test == "testIoLines") then testIoLines(); elseif (instance.parameters.test == "testFileReadAll") then testFileRead("a"); -- *all elseif (instance.parameters.test == "testFileReadNumber") then testFileRead("*n"); -- *number elseif (instance.parameters.test == "testFileReadLine") then testFileRead("l"); -- *line end end end -- NB: This method is NOT supported in TS 01.14.112415 function testFileLines() local handle, error = io.open(instance.parameters.file, "r"); for line in handle:lines() do core.host:trace(tostring(line)); end handle:close(); end -- NB: This method is NOT supported in TS 01.14.112415 function testIoLines() for line in io.lines(instance.parameters.file) do core.host:trace(tostring(line)); end end function testFileRead(mode) local handle, error = io.open(instance.parameters.file, "r"); while true do local line = handle:read(mode); if line == nil then break end core.host:trace(tostring(line)); end handle:close(); end function AsyncOperationFinished(cookie, success, message) end