Tool [RELEASE]Data_tool ( lua & i/o easy way )

Stato
Discussione chiusa ad ulteriori risposte.

d3m0n3

Utente Gold
25 Ottobre 2009
440
21
235
254
Ultima modifica da un moderatore:
salve,

vi rilascio un piccolo ma utile tool per gestire la lettura/scrittura dei file con i/o system in lua comunemente utilizzato in molti script, inoltre crea il backup del file modificato ( in scrittura ) :)

Codice:
DATA_READ = 0
DATA_WRITE = 1


function data_tool(DATA_MODE, DATA_FILE, DATA_LINE)
    local x = 1
    local file = ""
    if DATA_MODE == DATA_READ then
        file = io.open(DATA_FILE, "r")
        while true do
            local line = file:read("*l")
            if line == nil then 
                break 
            end
            text = string.gsub(line, "\n", "")
            if x == DATA_LINE then 
                io.close(file)
                return text
            end
            x = x + 1
        end
        io.close(file)
    elseif DATA_MODE == DATA_WRITE then
        os.rename(DATA_FILE, DATA_FILE..".BAK")
        file = io.open(DATA_FILE, "w")
        file:write(DATA_LINE)
        io.close(file)
        os.execute("chmod 777 "..DATA_FILE)
    end
end

come utilizzarlo:

per prima cosa va copiato in questlib.lua e fin quì dovremmo esserci tutti... xD

VARIABILI:

DATA_MODE = indica come agire sul file ( DATA_READ / 0 = lettura, DATA_WRITE / 1 = scrittura )

DATA_FILE = indica il file su cui agire ( path assoluta )

DATA_LINE = in lettura indica il numero della linea da leggere, mentre in scrittura indica il testo da scrivere.

esempio utilizzo in lettura/scrittura:
come esempio utilizziamo il file: file.txt situato nella path /home/game/
Codice:
esempio lettura:

local data = "/home/game/file.txt"
local linea = 3
local result = data_tool(DATA_READ, data, linea)

esempio scrittura:

local data = "/home/game/file.txt"
local linea = "ciao"
data_tool(DATA_WRITE, data, linea)

nel primo caso abbiamo letto dal file.txt la linea numero 3
nel secondo caso abbiamo scritto nel file.txt ciao

spero di essere stato abbastanza chiaro e utile :D

enjoy

d3m0n3


P.S.: per chi volesse si può aggiungere la flag per aumentare le funzionalità ma questo lo lascio fare a voi... :D
 
Ultima modifica:
Mi piace, Bravo! +1 e Like
P.S: Il I/O lo studiato poco o nulla, ma non dovresti mettere il file:flush() per salvare cosa scrivi?
 
Re: [RELEASE]Data_tool ( lua & i/o easy way )

usando close non serve è implicito

:)

- - - Updated - - -

aggiunto esempio di utilizzo xD

non è proprio così..... a volte la scrittura non riesce quindi il flush si usa per forzare la macchina virtuale e salvare il contenuto delle strighe scritte :)
 
Re: [RELEASE]Data_tool ( lua & i/o easy way )

non è proprio così..... a volte la scrittura non riesce quindi il flush si usa per forzare la macchina virtuale e salvare il contenuto delle strighe scritte :)

mi spiace ma non è così flush si usa quando vanno fatte + operazioni sullo stesso file si usa flush per non aprire e richiudere ogni volta il file... se si compie una sola operazione è più che sufficente il close...

- - - Updated - - -

un esempio applicativo può essere la scrittura di un file linea per linea...
 
Non ho mica capito come fare a scrivere dentro un file txt
Non basta scrivere:
local data = "C:\prova.txt"
local linea = "ciao"
data_tool(DATA_WRITE, data, linea)
Potresti spiegarmi come fare?
Sono alle prime armi
grazie
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom