Como criar um arquivo de configuracoes

371 views
Skip to first unread message

psdias

unread,
Feb 23, 2013, 8:45:39 PM2/23/13
to lua...@googlegroups.com
Pessoal:

Sou novato em Lua.  Conheço apenas o básico.

Obs.: Na verdade, estou usando Lua através de um framework chamado MOAI que, que dizem ser bastante poderoso para criar jogos.
Porém, a documentação sobre MOAI é bastante escassa, e os exemplos não são nada amigáveis para iniciantes, como eu.

Estou criando um jogo bem simples, que está quase terminado (pretendo disponibilizá-lo para iOS e Android).

Gostaria de poder solicitar o idioma que o usuário prefere usar
(português, espanhol ou inglês).  Essa parte da tradução eu já sei fazer.  O que preciso aprender é, após o usuário ter escolhido o idioma, como fazer
para gravar o idioma em um arquivo de configurações do jogo, para que o jogo já entre com aquele idioma selecionado, na próxima vez em que for executado.

Minha idéia é guardar o idioma como uma linha de uma arquivo .TXT, como:

language = "pt"

... ou algo assim.

a) Alguém que já tenha feito algo parecido pode me dar alguma dica se realmente um .TXT é a melhor estratégia para isso ?
Ou em Lua já existe algum recurso (como os arquivos .INI do Windows, por exemplo) para guardar esse tipo de parâmetro ?

b) No ambiente Delphi (no qual eu fui programador durante muitos anos), havia rotinas prontas para ler um arquivo .INI, onde eu passava
o nome do parâmetro (language, no exemplo acima) e a rotina me retorna va o valor (pt, no exemplo acima).  Existe algo pronto em Lua,
ou terei que construir uma rotina que leia as linhas do arquivo (podem haver mais parâmetros, e não apenas o "language"), localize o
parâmetro "language", o símbolo de igualdade (=) e depois retorne o valor "pt" ?

c) Só mais uma questão:  Alguém deste grupo que já programou para iOS ou Android, sabe informar se existe um diretório (pasta)
padronizado onde eu possa gravar o arquivo de configuração ?   Há um modo de eu pedir para o sistema operacional (iOS ou Android) que me
forneça o nome da pasta padrão onde o aplicativo está rodando (no iPad, iPhone, celular, etc.), para que eu possa criar o arquivo de configurações
no local correto ?

Sei que são perguntas de iniciante, mas estou procurando essas informações pela Internet, e até o momento não consegui
localizar.   Se alguém tiver alguma outra idéia sobre como salvar um arquivo de configurações, agradeço muito.

Obs.: No MOAI, já consegui encontrar os comandos que salvam dados em arquivos.

Grato pela atenção de todos !
Paulo


Eric Chiesse

unread,
Feb 24, 2013, 2:05:05 PM2/24/13
to lua...@googlegroups.com
Se seu arquivo txt for um lua bem formado (código lua sem erros) basta fazer:

dofile("config.txt")

Isso irá carregar o código do arquivo colocando todas as variáveis
definidas no seu ambiente global.
---
Eric
> --
> --
> Lua BR - http://groups.google.com/group/lua-br
>
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos
> Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para lua-br+un...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>

psdias2

unread,
Feb 24, 2013, 3:55:13 PM2/24/13
to lua...@googlegroups.com
Ol�, Eric !

a) Muito interessante o comando "dofile" que voc� indicou - fac�limo de
usar.
Fiz um teste e funcionou.

b) Falta s� descobrir como saber os locais (pastas, diret�rios...) em
que posso fazer a grava��o.
Quando voc�s desenvolvem seus aplicativos, como obter do sistema
operacional o nome (e caminho)
da pasta default do aplicativo, ou a pasta default do usu�rio, onde meu
aplicativo tenha direito de grava��o e leitura de arquivos ?
E isso (essa pasta onde o aplicativo tem direito de gravar e ler)
depende do sistema operacional ?

Obs.: Nos testes que estou fazendo, rodando meu aplicativo (um joguinho)
no Windows 7, estou simplesmente indicando o nome
do arquivo ("configuracoes.txt") e o arquivo est� sendo salvo na mesma
pasta onde se encontra o arquivo principal do meu c�digo (main.lua).
Mas em sistemas operacionais como o iOS e Android tamb�m � simples assim
(basta indicar o nome do arquivo, sem me preocupar se
tenho direito de grava��o ou n�o na pasta) ?

Grato pela aten��o, e muito obrigado pela dica do "dofile".
Paulo

> Se seu arquivo txt for um lua bem formado (c�digo lua sem erros) basta fazer:
>
> dofile("config.txt")
>
> Isso ir� carregar o c�digo do arquivo colocando todas as vari�veis

Eric Chiesse

unread,
Feb 25, 2013, 5:15:35 AM2/25/13
to lua...@googlegroups.com
Normalmente arquivos de configuração referentes ao teu aplicativo
devem ficar na mesma pasta do seu aplicativo e normalmente teu
aplicativo pode escrever nessa pasta. É o que eu faria. Acho que o
projeto fica mais organizado e não polui outros ambientes.

Acho que o MOAI (ainda não usei) não deve te impor restrições quanto a isso.

Agora quanto a gravar e ler coisas fora dessa pasta do aplicativo
realmente vai depender das permissões.

Se teu problema for só gravar as configurações em um arquivo, então o
que a gente viu até agora é suficiente e até elegante eu diria (eu só
trocaria a extensão de .txt para .cfg ou . ini para ficar claro). Se
você quer algo diferente aí é preciso ter mais detalhes.

Valeu! Boa sorte aí!

---
Eric Chiesse


Em 24 de fevereiro de 2013 17:55, psdias2 <psd...@yahoo.com.br> escreveu:
> Olá, Eric !
>
> a) Muito interessante o comando "dofile" que você indicou - facílimo de
> usar.
> Fiz um teste e funcionou.
>
> b) Falta só descobrir como saber os locais (pastas, diretórios...) em que
> posso fazer a gravação.
> Quando vocês desenvolvem seus aplicativos, como obter do sistema operacional
> o nome (e caminho)
> da pasta default do aplicativo, ou a pasta default do usuário, onde meu
> aplicativo tenha direito de gravação e leitura de arquivos ?
> E isso (essa pasta onde o aplicativo tem direito de gravar e ler) depende do
> sistema operacional ?
>
> Obs.: Nos testes que estou fazendo, rodando meu aplicativo (um joguinho) no
> Windows 7, estou simplesmente indicando o nome
> do arquivo ("configuracoes.txt") e o arquivo está sendo salvo na mesma pasta
> onde se encontra o arquivo principal do meu código (main.lua).
> Mas em sistemas operacionais como o iOS e Android também é simples assim
> (basta indicar o nome do arquivo, sem me preocupar se
> tenho direito de gravação ou não na pasta) ?
>
> Grato pela atenção, e muito obrigado pela dica do "dofile".
> Paulo
>
>
>> Se seu arquivo txt for um lua bem formado (código lua sem erros) basta
>> fazer:
>>
>> dofile("config.txt")
>>
>> Isso irá carregar o código do arquivo colocando todas as variáveis
>> definidas no seu ambiente global.
>> ---
>> Eric
>>
>>
>

Manoel Campos da Silva Filho

unread,
Feb 25, 2013, 11:44:23 AM2/25/13
to lua...@googlegroups.com
Porque não usa arquivos lua no lugar de txt?
Veja o módulo config disponível

A pasta doc possui documentação do mesmo.
Apesar de ser pra TV Digital, pode ser usado em qualquer plataforma.


2013/2/25 Eric Chiesse <echi...@gmail.com>

Eric Chiesse

unread,
Feb 25, 2013, 12:32:31 PM2/25/13
to lua...@googlegroups.com
Pode ser config.lua também. Eu só estava enfatizando que o dofile não
olha a extensão do arquivo apenas seu conteúdo.
---
Eric


Em 25 de fevereiro de 2013 13:44, Manoel Campos da Silva Filho
<manoel...@gmail.com> escreveu:

psdias

unread,
Feb 26, 2013, 7:33:41 AM2/26/13
to lua...@googlegroups.com
Olá, Eric e Manoel !

Muito obrigado pelas dicas!  Acho que servirão para minhas necessidades.

Paulo

Reply all
Reply to author
Forward
0 new messages