2013-07-22 185 views
1

我正在使用Lua,我有一個文件,我想將每行分成兩個不同的數組。我的文件的每一行都包含兩個用空格分隔的字符串。 例如,如果我的文件包含如何在Lua中將字符串拆分爲兩個數組?

something something_else 

我應該有

tab_1[1] = something 
tab_2[1] = something_else 

我試着用拆分像

file =io.open("myfile.txt", "r") 
for line in file:lines() do 
line = file:read() 
for value in split(line," ") 
table.insert(tab_1,value[i]) 
table.insert(tab_2,value[i]) 
i=i+1 
end 

它似乎是錯誤的,因爲我知道,拆分可能不會返回數組,但我知道它返回不同的字符串。我如何管理他們。

+0

'tab_1中[1]'和'tab_2 [2]'?這似乎有點奇怪。另外,從你的代碼看起來更像是你想'tab_1 [1]'和'tab_2 [1]'。 – ComicSansMS

+0

是的,我錯了那個ouuups它是tab_1 [1]和tab_2 [1] – Hobbit1919

回答

1
for line in io.lines'myfile.txt' do 
    local v1, v2 = line:match'(.-)%s+(.*)' 
    table.insert(tab_1,v1) 
    table.insert(tab_2,v2) 
end 
+0

實際上沒有按預期工作實際上我不知道我是否足夠清楚,但我的文件包含由空格隔開的網址和IP地址這不僅僅是簡單的話。第二個變量v2沒有得到任何值 – Hobbit1919

+0

請從文本文件中顯示一個字符串示例,其中'v2'對我的代碼沒有任何價值。 –

+0

http_url 91.25.36.85 – Hobbit1919

1
for line in io.lines('myfile.txt') do 
    local v1, v2 = string.match(line, "^(%S+)%s+(%S+)$") 
    if v1 and v2 then 
    table.insert(tab_1,v1) 
    table.insert(tab_2,v2) 
    else 
    -- wrong line 
    end 
end 
相關問題