Как вы анализируете эту строку в Lua "1 2 3 4"? - PullRequest
0 голосов
/ 19 января 2011

Я новичок в Lua на чистом фоне VB.Net.У меня есть большой файл maplines, который мне нужно перебрать.Данные имеют вид:

; XX.XXX YY.YYY Имя;[Воздушные трассы] 58.50 -12.44 58.21 -13.73

58.21 -13.73 57.89 -15.02

57.89 -15.02 57.54 -16.30

57.54 -16.30 57.17 -17.58

57.17 -17.58 56.76 -18.84

56.76 -18.84 56.33 -20.10

56.33 -20.10 55.87 -21.35

54.33 -25.02 53.77 -26.22

Iпробовал это, но продолжаю получать ошибку.

local mapLines = {}

local filePath = system.pathForFile( "data.ini", system.DocumentsDirectory )

local file = io.open( filePath, "r" )

if file then
local contents = file:read( "*a" )

--print( "Contents of " .. filePath )
--print( contents )

io.close( file )

local t = display.newText( "Contents of ", 5, 80, nil, 16 );
t:setTextColor( 255, 255, 136, 255 );
local t = display.newText( filePath, 5, 100, nil, 10 );
t:setTextColor( 255, 255, 136, 255 );

local ylast = 130
for line in io.lines(filePath) do  
    local t = display.newText( line, 15, ylast, nil, 14 );
    t:setTextColor( 255, 255, 255 );    
    ylast = ylast + 20

    n = tonumber(line);
    if n == nil then

        local f = {}
        s = "1 2 3 4"
        for k, v in string.gmatch(s, "(%w+) (%w+)") do
        f[k] = v
          end



local myLine = newLine(tonumber(f[1]), tonumber(f[2]), tonumber(f[3]), tonumber(f[4]))
        table.insert( mapLines, myLine )
    end
  end
end


-- Example of shape drawing func


local function newLine(x,y,x1,y1)

-- need initial segment to start
local Line = display.newLine( x, y, x1, y1 ) 

Line:setColor( 30, 155, 30, 100 )
Line.width = 3

return Line
end

Runtime:addEventListener( "enterFrame", mapLines )

Любая помощь будет принята с благодарностью!

Дейв

1 Ответ

4 голосов
/ 19 января 2011

отвечая на вопрос в теме:

local string_to_parse = '1 2 3 4'

for s in string_to_parse:gmatch('%d+') do
   print(s)
end

пример кода на кодовая панель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...