SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 10/11/2009, 08:48 PM   #1
[VGS]Protioso
Huge Clucker
 
[VGS]Protioso's Avatar
 
Join Date: Feb 2009
Location: Brasil
Posts: 209
Reputation: 1
Default [INC] Protioso Gerenciamento de Dados (PGD) 1.3F2 (06/12/09)

Olá pessoal!

Há um tempo atrás queria fazer meu próprio "gerenciamento de dados", pois era meio trabalhoso escrever e fazer leitura de arquivos... Tinha sempre que fazer um new File:tal, str, etc., e isso se repetia em todos meus scripts, já usei alguns outros includes que faziam está função mas eu não gostava muito. Então em meio a esta situação comecei a criar meu include, de início fiz as funções que precisava usando o "formato" de arquivos padrão (a partir de funções file.inc), mas depois de um tempo usando decidi adicionar umas funções de SQLite (a partir de funções a_sampdb.inc).
Depois de um bom tempo usando o include e ter passado para alguns amigos para testarem, decidi agregar mais algumas funções de SQLite.
No final de tudo acho que ficou um bom trabalho, desde funções simples até funções complexas, tornando um script de uso para todos os gostos, e dentre uma das características dele, uma eu acho essencial que é, no formato file, seu modo de salvar as chaves, que garante mais segurança tornando impossível a criação de duas chaves iguais (via PGD).

PGD é ideal para salvar e carregar os mais diversos dados! Desde registros de jogadores até sistemas mais complexos.

Quote:
Salvando um valor inteiro (integer) de uma variável qualquer usando PGD:

pawn Code:
new VariavelQualquer; // No início do script
public OnGameModeExit()
{
   VariavelQualquer = 2;
   pgd_EscreverInt("Meu arquivo.txt", "MeuValor", ":", VariavelQualquer);
   /* Obs.: Prefixo é o caractere que fica entre a chave e o valor neste caso no arquivo ficará
   escrito assim: 'MeuValor':2. Note que 2 é o valor de 'VariavelQualquer' */

}

Carregando um valor inteiro (integer) para uma variável qualquer:

pawn Code:
// No início do script já criamos a variável 'VariavelQualquer', portando não adicionarei nesta parte (acompanhe o exemplo)
public OnGameModeInit()
{
   VariavelQualquer = pgd_CarregarInt("Meu arquivo.txt", "MeuValor", ":");
   printf("O valor de 'VariavelQualquer' é %d", VariavelQualquer);
}
Lembrando que as funções acima são apenas EXEMPLOS.


Dúvida frequente:
O que devo colocar em "prefixo"?
R: Como já dito anteriormente "prefixo é o caractere que fica entre a chave e o valor (...)", então vai de SUA ESCOLHA o caractere do prefixo. Pode ser ":", "=", "!", "*"... Enfim... Lembre-se de que é necessário usar o MESMO CARACTERE que foi usado para salvar determinado valor em uma CHAVE para carregar o valor dela.
Como no exemplo acima foi usado o prefixo ":" para salvar o valor na chave "MeuValor", então para carregar deverá usar o mesmo prefixo: pgd_CarregarInt("Meu arquivo.txt", "MeuValor", ":");
Sendo assim, não há problemas em criar duas chaves com o mesmo nome, desde que tenham PREFIXOS diferentes.
> Exemplo de registro usando PGD (Filterscript feito por [VGS]speliarmos_OC)



Quote:
Funções nativas (natives):

- FILE
pgd_CriarArquivo(nome_arquivo[]);
pgd_ApagarArquivo(nome_arquivo[]);
pgd_ArquivoExiste(nome_arquivo[]);
pgd_EscreverStr(arquivo[], chave[], prefixo[2] = ":", valor[]);
pgd_EscreverInt(arquivo[], chave[], prefixo[2] = ":", valor);
pgd_EscreverFloat(arquivo[], chave[], prefixo[2] = ":", Float:valor);
pgd_EscreverBool(arquivo[], chave[], prefixo[2] = ":", bool:valor);
pgd_CarregarStr(arquivo[], chave[], prefixo[2] = ":");
pgd_CarregarInt(arquivo[], chave[], prefixo[2] = ":");
pgd_CarregarBool(arquivo[], chave[], prefixo[2] = ":");
pgd_CarregarFloat(arquivo[], chave[], prefixo[2] = ":");
pgd_ChaveExiste(arquivo[], chave[], prefixo[2] = ":");
pgd_CopiarDados(arquivo_principal[], arquivo_destino[], bool:ad_a = true);
pgd_MudarValor(arquivo[], linha, c_linha_nova[]);
pgd_ApagarChave(arquivo[], chave[], prefixo[2] = ":");
pgd_ApagarLinha(arquivo[], linha);
pgd_EscreverArquivo(arquivo[], linha[], bool:comparar_igual = false);
pgd_RenomearArquivo(nome_antigo[], novo_nome[]);


- SQLite
pgd_SQLCriarDatabase(dbnome[]);
pgd_SQLApagarDatabase(dbnome[]);
pgd_SQLDatabaseExiste(dbnome[]);
pgd_SQLCriarTabela(dbnome[], tabela_nome[], coluna[]);
pgd_SQLLimparTabela(dbnome[], tabela_nome[]);
pgd_SQLVerificarColuna(dbnome[], tabela_nome[], where[]);
pgd_SQLInserirLivre(dbnome[], tabela_nome[], coluna_str[], dados[]);
pgd_SQLInserirStr(dbnome[], tabela_nome[], coluna[], dados[]);
pgd_SQLInserirInt(dbnome[], tabela_nome[], coluna[], dados);
pgd_SQLInserirFloat(dbnome[], tabela_nome[], coluna[], Float:dados);
pgd_SQLInserirBool(dbnome[], tabela_nome[], coluna[], bool:dados);
pgd_SQLEscreverStr(dbnome[], tabela_nome[], coluna[], where[], dados[]);
pgd_SQLEscreverInt(dbnome[], tabela_nome[], coluna[], where[], dados);
pgd_SQLEscreverFloat(dbnome[], tabela_nome[], coluna[], where[], Float:dados);
pgd_SQLEscreverBool(dbnome[], tabela_nome[], coluna[], where[], bool:dados);
pgd_SQLCarregarStr(dbnome[], tabela[], coluna[], where[]);
pgd_SQLCarregarInt(dbnome[], tabela[], coluna[], where[]);
pgd_SQLCarregarBool(dbnome[], tabela[], coluna[], where[]);
pgd_SQLCarregarFloat(dbnome[], tabela[], coluna[], where[]);
pgd_SQLValorExiste(dbnome[], tabela[], coluna[], where[]);
pgd_SQLApagarDados(dbnome[], tabela[], where[]);
Atenção! Para usar o include PGD é necessário o include PSF (Protioso String Funções) que você encontra facilmente AQUI.

Instalação:
1°- Extraia o arquivo compactado na pasta do seu PAWNO;
2°- Escreva #include "PGD" no início de seu script para poder adicioná-lo ao script. Após isso, desfrute das funções.

Configuração:
Você pode configurar o arquivo PGD_USER_DEF.inc com valores que você preferir, lembrando que esses valores são focados para o uso em FILE. Não há configurações para SQLite nesta versão pois não notei a necessidade.

Informação e ajuda:
Se você tem dúvida em alguma função, procure-a no arquivo PGD Manual.txt que fica dentro da pasta include/PGD. Lá todas as funções estão listadas com uma breve explicação.

> EXTRA: PGD Conversor (dini para PGD).

Download (PGD 1.3F2 - 4 de dezembro 2009):


(Nova versão mais ágil e mais segura)
Atualização fortemente recomendada.


AVISO: não me responsabilizo por scripts obtidos por outras referências! Os originais e garantidos são apenas no link acima!
[VGS]Protioso is offline   Reply With Quote
Old 10/11/2009, 10:06 PM   #2
grid
Little Clucker
 
Join Date: Aug 2009
Posts: 3
Reputation: 0
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Excelente. =)
grid is offline   Reply With Quote
Old 10/11/2009, 10:46 PM   #3
Ghard
Little Clucker
 
Join Date: Mar 2008
Posts: 8
Reputation: 0
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Faiz muito que não te vejo postando na comunidade Pawn/C++ Protioso, morreu e ressucitou somente agora ?
Ghard is offline   Reply With Quote
Old 11/11/2009, 03:03 PM   #4
Toribio
Big Clucker
 
Join Date: Oct 2007
Posts: 82
Reputation: 34
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Quote:
Originally Posted by [SD
BurN ]
Faiz muito que não te vejo postando na comunidade Pawn/C++ Protioso, morreu e ressucitou somente agora ?
O Jones tinha banido ele, mas depois desbaniu, mas acho que ele não quer mais voltar
__________________
[img]http://lh3.******usercontent.com/-aumgmxCOpDo/TIGipMP1hHI/AAAAAAAAA6A/4i4FR3kLo6o/s24-no/logo.png[/img] Infernus Pawn Editor
Toribio is offline   Reply With Quote
Old 11/11/2009, 03:51 PM   #5
C0ld_
Little Clucker
 
Join Date: Nov 2008
Posts: 15
Reputation: 0
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Nice!
C0ld_ is offline   Reply With Quote
Old 12/11/2009, 08:10 PM   #6
ashiuashiu
Little Clucker
 
Join Date: Apr 2007
Posts: 21
Reputation: 3
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Quote:
Originally Posted by Toribio
Quote:
Originally Posted by [SD
BurN ]
Faiz muito que não te vejo postando na comunidade Pawn/C++ Protioso, morreu e ressucitou somente agora ?
O Jones tinha banido ele, mas depois desbaniu, mas acho que ele não quer mais voltar
Exatamente.
ashiuashiu is offline   Reply With Quote
Old 12/11/2009, 11:44 PM   #7
-xy!
Little Clucker
 
Join Date: Oct 2009
Posts: 34
Reputation: 0
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

muito bom :~
-xy! is offline   Reply With Quote
Old 14/11/2009, 12:16 AM   #8
[VGS]Protioso
Huge Clucker
 
[VGS]Protioso's Avatar
 
Join Date: Feb 2009
Location: Brasil
Posts: 209
Reputation: 1
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Quote:
Originally Posted by -xy!
muito bom :~
Obrigado coelio vélio.
[VGS]Protioso is offline   Reply With Quote
Old 14/11/2009, 05:52 PM   #9
JustinSton
Big Clucker
 
Join Date: Jul 2009
Posts: 162
Reputation: 0
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Very good!! Muito bom!!
JustinSton is offline   Reply With Quote
Old 22/11/2009, 10:29 PM   #10
ObScUR3_
Little Clucker
 
Join Date: Dec 2008
Posts: 12
Reputation: 0
Default Re: [INC] Protioso Gerenciamento de Dados (PGD) 1.2F3

Muito bom.
ObScUR3_ is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Tutorial] [TUT] Salvamento de Dados ipsBruno Português/Portuguese 55 10/06/2017 08:29 AM
[Include] [INC] Protioso Arquivo Pessoal (PAP) 1.0 [VGS]Protioso Lançamentos/Releases 68 11/12/2010 12:45 AM
[Include] [INC] Protioso Streamer (PS) 1.0 (com PGP, PSO, PMS e PCS - 13/06/2010) [VGS]Protioso Lançamentos/Releases 42 21/11/2010 10:52 PM
[Include] [INC] Protioso String Funções (PSF) 1.2F3 (06~08/12/09) [VGS]Protioso Lançamentos/Releases 18 07/06/2010 12:22 AM
[RESOLVIDO] Carregamentos de Dados [DUV] ipsBruno Português/Portuguese 2 13/05/2010 12:35 AM


All times are GMT. The time now is 11:30 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.