So konnte ich Daten aus einer Datei in eine Tabelle schreiben und das erste Wort jeder Zeile einen Schlüssel setzen. Wie zeige ich was in der Tabelle in einer Reihenfolge an, basierend auf dem Lesen in einer anderen Datei mit nur den Schlüsseln?Anzeige der Tabelleninformationen basierend auf einer eingelesenen Datei
-- see if the file exists
function file_exists(file)
local f = io.open("data.txt", "rb")
if f then f:close() end
return f ~= nil
end
-- get all lines from a file, returns an empty
-- list/table if the file does not exist
function lines_from(file)
if not file_exists(file) then return {} end
lines = {}
for line in io.lines("data.txt") do
first_word = string.gmatch(line, "%a+") -- word
lines[first_word] = line
end
return lines
end
local lines = lines_from(file)
end
Muss ich beibehalten, wo Sie Datei als data.txt sagte? Wenn ich es mache Datei gibt es mir Fehler – CorDell
Wie füge ich Zeile 1 vor dem ersten output und so weiter? – CorDell
@CorDell: Da Sie Funktionen verwenden i angenommen Sie sie in einer Art und Weise, wie diese riefen: 'lines_from („data.txt“)' (wie Sie in meinem letzten Codebeispiel sehen) Lua nicht, wenn Sie sich beschweren tun Sie das nicht, aber dann wird es einen Nullwert für den Dateinamen erhalten, und das wird nicht funktionieren. Also müssen Sie den Dateinamen an lua übergeben. In Ihrem Beispiel ist der erste Dateiname "data.txt", für die Schlüsseldatei habe ich nur "keys.txt" genommen. Aber Sie müssen das sicherlich zu Ihrem Fall übernehmen. Für Ihren zweiten Kommentar: Verwenden Sie print zusammen mit string.format. Ich habe meine Antwort bearbeitet, um dies zu erreichen. – pschulz