2017-02-13 9 views
0

ich versuche zu Lua Script lesen DateiLUA lesen Datei aus bestimmten Zeile zu bestimmten Zeile

data.txt

1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 NameE LastNameF 
87978987 NameG LastName 
1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 NameE LastNameF 
87978987 NameG LastNameH 

* diese alle Daten nicht gleiche ID und Person

zu machen, was ich will versuchen zu tun ist:

Beispiel: Wert A = < 1 Byte Daten zu 60>

1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 N 

so Zeile 3 nicht vollständige Daten, so dass ich mag Datenzeile 1 und 2 und überspringen Zeile 3

1626363 NameA LastNameB 
42342344 NameC LastNameD 

Wert B mit Reihe 3 bis zum Ende

345345 NameE LastNameF 
87978987 NameG LastName 
1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 NameE LastNameF 
87978987 NameG LastNameH 

jeden Wert starten maximal 60 Byte,

sorry für meine schlechte Erklärung

+0

Sie nicht erklären, was Sie Ihr Skript tun möchte, tatsächlich. Was soll der Output sein? –

+0

Wie definieren Sie "vollständige Daten"? – tonypdmtr

Antwort

0

ich bin nicht sicher was du willst. Aber Antwort für Frage read file from specific line to specific line ist

local function skip_n_lines(f, n) 
    while f:read('*l') do 
    n = n - 1 
    if n == 0 then break end 
    end 
    return n 
end 

local function read_n_lines(f, n) 
    local t = {} 
    for i = 1, n do 
    local s = f:read('*l') 
    if not s then break end 
    t[#t + 1] = s 
    end 
    return t 
end 

local f = io.open('test.txt', 'rb+') 
if 0 == skip_n_lines(f, 12) then 
    local data = read_n_lines(f, 4) 
end 
Verwandte Themen