Ir para conteúdo

[Arquivado]Database System For Scripting


colex

Posts Recomendados

Olá,

Venho postar um sistema simples de base de dados, que poderá ser útil para algumas pessoas...

 

O sistema deverá funcionar em todos os tipos de scripting (por isso que eu estou criando o tópico nesta area), basta cola o código do controle da base de dados nas libs!

 

Porque usar uma base de dados:

Com uma Base de Dados as informações são fixas, ou seja, os valores não serão alterados devidos a problemas no server ou quando o mesmo desliga-se.

O acesso às base de dados são simples e não requerem experiencia em programação.

As Base de Dados poderão ajudar na criação de novos sistemas (alguns que você poderia não saber como fazer até agora)!

 

o Script fornece:

- Criação de Base de Dados com campos

- Adicionar campos às bases de dados

- Remover campos de bases de dados

- Obter valor de um campo

- Mudar valor de um campo

- Obter todos os valores e campos de uma base de dados

 

As funções serão explicadas depois dos script...

 

 

[sCRIPT] Sistema de Base de Dados Simples:

----------Simple Database System v1.1 by Colex----------

function getAllFieldsValues(database)
 local file = io.open(database,"r")

 local i = 1
 local variable = ""

 values = {}

 while true do
	 local line = file:read()
	 if line == nil or line == "" then break end
	 variable = string.sub(line,0,string.find(line, "=")-1) --Getting Info field
	 val = string.sub(line,string.find(line, "=")+1,string.len(line)) --Getting Info Value
	 values[i] = {field = variable, value = val}
	 i = i + 1
 end
 io.close(file)

 return values
end 


function getFieldValue(database,field,isNumber)
 local file = io.open(database,"r")

 local found = 0
 local variable = ""

 while true do
	 local line = file:read()
	 if line == nil or line == "" then break end
	 variable = string.sub(line,0,string.find(line, "=")-1) --Getting Info field
	 if (string.upper(variable) == string.upper(field)) then
	   value = string.sub(line,string.find(line, "=")+1,string.len(line)) --Getting Info Value
   if (isNumber == true) then
	 num = tonumber(value)
   end
	   found = 1
	   break
	 end
 end
 io.close(file)
 if (found == 0) then
   return false
 elseif (isNumber == true) then
   return num
 else
   return value
end

end

function setFieldValue(database,field,newvalue)
  uFile = io.open(database,"r")
  i = 0
  lines = {}
  if getFieldValue(database,field,false) == false then return 0 end
  while true do
   lines[i] = uFile:read()
   if lines[i] == nil or lines[i] == "" then break end
   variable = string.sub(lines[i],0,string.find(lines[i], "=")-1) --Getting Info field
   if (string.upper(variable) == string.upper(field)) then
	 lines[i] = variable.."="..newvalue
   end
   i = i+1
  end
  io.close(uFile)
  i = 0
  uFile = io.open(database,"w")
  while true do
   if lines[i] == nil or lines[i] == "" then break end
   uFile:write(lines[i].."\n")
   i = i+1
  end
  io.close(uFile)
  return 1
end

function addField(database,field,value)
 i = 0
 ret = 1
 if getFieldValue(database,field,false) ~= false then return false end
 uFile = io.open(database,"a+")
 uFile:write(field.."="..value.."\n")
 io.close(uFile)
 return 1
end

function removeField(database,field)
  uFile = io.open(database,"r")
  i = 0
  lines = {}
  if getFieldValue(database,field,false) == false then return false end
  while true do
   lines[i] = uFile:read()
   if lines[i] == nil or lines[i] == "" then break end
   variable = string.sub(lines[i],0,string.find(lines[i], "=")-1) --Getting Info field
   if (string.upper(variable) == string.upper(field)) then
	 i = i-1
   end
   i = i+1
  end
  io.close(uFile)
  i = 0
  uFile = io.open(database,"w")
  while true do
   if lines[i] == nil or lines[i] == "" then break end
   uFile:write(lines[i].."\n")
   i = i+1
  end
  io.close(uFile)
  return 1
end

function createDatabase(database,fields,values)
  uFile = io.open(database,"w")
  for i in ipairs(fields) do
 uFile:write(fields[i].."="..values[i].."\n")
  end
  io.close(uFile)
  return 1
end

--------------------------------------------------------------------

 

Funções, Explicações e Exemplos:

 

createDatabase(database, fields, values) - Cria uma base de dados com determinados campos e valores

database - arquivo onde serão guardadas as informações

fields - campos da base de dados (tabela)

values - valores dos campos (tabela)

 

exemplo:

campos = {"nome", "level", "vocacao"}

valores = {"Colex", 157, "sorcerer"}

createDatabase("database.ini",campos,valores}

 

----------------------------------------------------------

 

addField(database, field, value) - Adiciona um campo à uma Base de Dados existente (retorna 0 se o campo ja existir)

database - Base de Dados onde será adicionado o campo

field - Nome do campo que será adicionado

value - Valor do campo

 

Exemplo:

i = addField("database.ini", "MagicLevel", 60)

if i == 0 then

print("Campo existente")

else

print("Campo adicionado!")

end

 

----------------------------------------------------------

 

removeField(database, field) - Remove um campo de uma Base de Dados existente (retorna 0 se o campo não existir)

database - Base de Dados da onde será removido o campo

field - Nome do campo que será removido

 

Exemplo:

i = removeField("database.ini", "MagicLevel")

if i == 0 then

print("Campo não existe")

else

print("Campo removido!")

end

 

----------------------------------------------------------

 

getFieldValue(database,field,isNumber) - Pega o valor de determinado campo (retorna FALSE se campo não existir)

database - Base de Dados de onde será obtido o valor

field - Campo desejado

isNumber - se isNumber for TRUE o valor retornado será um numero, case seja FALSE o valor retornado será texto

 

Exemplo:

name = getFieldValue("database.ini", "nome",false)

print("O teu nome é: "..name)

 

----------------------------------------------------------

 

setFieldValue(database,field,newvalue) - Muda o valor de um campo (retorna 0 se o campo não existir)

database - Base de Dados onde o valor será mudado

field - Campo que deseja mudar o valor

newvalue - Novo valor do campo

 

Exemplo:

i = setFieldValue("database.ini", "nome", "Magic Colex")

if i == 0 then

print("Campo não existe")

else

print("Campo atualizado!")

end

 

----------------------------------------------------------

 

getAllFieldsValues(database) - Retorna todos os fields e valores em uma tabela com a seguinte estrutura table[numero].field (campo) e table[numero].value (valor do campo)

database - Base de Dados de onde os valores serão obtidos

 

Exemplo:

data = getAllFieldsValues("database.ini")

print(data[1].field.." = "..data[1].value)

 

----------------------------------------------------------

 

 

O POST DESTE SCRIPT EM OUTRO FÓRUM OU QUALQUER OUTRO LUGAR, NÃO SERÁ AUTORIZADO SEM UM PEDIDO PRÉVIU AUTORIZADO! OS CRÈDITOS DO SCRIPT DEVERÃO SER INALTERADOS.

 

Se houver alguma dúvida, poste que eu tentarei ajudar!

Colex

Editado por colex
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 2 months later...
  • 1 month later...
  • 10 months later...
  • 9 years later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...