CO

[Arquivado]Database System For Scripting

Por colex, 01 de out. de 2007 em Noticias - Arquivo

script
8
4.6k
colexC
01 de outubro de 2007 às 19:54

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 Outubro 3 por colex

soulblasterS
01 de outubro de 2007 às 21:08

Hiho!

 

nossssa! colex volto? *-*

mto bom esse script, e facil de arrumar a database =}

vlw de novo colex ;p

 

cya ^^

2 semanas depois...
JovialJ
11 de outubro de 2007 às 15:51

Parabens.. ficou muito bom, mas hoje em dia eu prefiro o lusasql. =D

2 meses depois...
h3onlineH
27 de dezembro de 2007 às 00:16

pow colex vc é ######

1 mês depois...
gornoG
29 de janeiro de 2008 às 22:22

+ como q adiciona essa data base?

10 meses depois...
menaresM
30 de novembro de 2008 às 18:52

Gostei Muito Ta de parabeins

Muito bem escrito,bem esplicado

Congratilashions!!!!!

 

:party::surprised:

SchiavinatoS
05 de dezembro de 2008 às 16:26

Não intendi muito bem para que que serve isso...É uma databse para salvar os char,acc, essas coisas, soh q em script?

9 anos depois...
StigalS
25 de abril de 2018 às 16:22
Esta noticia foi arquivada.
Este tópico está fechado e foi movido para Noticia - Arquivo.

+ Caso tenha atualizações você poderá criar outro tópico.