Aula 03 - Manipulando o arquivo.ini

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy em Dom 06 Nov 2011, 14:12

Manipulando o arquivo.ini
Aula 03/03

Finalmente chegamos na parte interessante das aulas sobre arquivos.ini,  agora você vai aprender como usar as funções aprendidas anteriormente. Antes de começar, crie um novo projeto e salve em algum lugar. Se você não sabe o que são INIs, significa que você pulou algumas aulas, seu danadinho... Se achar necessário, consulte a primeira aula e também a segunda aula.

Primeiro passo - Abrir/Criar um INI:
Sempre que formos trabalhar com um INI, a primeira coisa que devemos fazer é carregar/criar um. Para isso, usamos a função ini_open(“nome.ini”).
Usar esta função é muito simples, basta definirmos um nome e uma extensão desejada. Você pode colocar qualquer nome e qualquer extensão, pois o resultado vai ser o mesmo, como por exemplo, “NomeDoJogo.sav”. Note que, você sempre deve escrever entre aspas(""). Se você executar o jogo, você não encontrará o arquivo.ini que você criou. Mas por quê? Saberemos disso posteriormente...

Segundo Passo – Criando variáveis carregáveis.
Se você quisesse criar uma variável normal em um objeto, você procederia da seguinte forma:
Create:
Variável=Valor
Mas, se quisermos criar uma variável “carregável”, ou seja, que será carregado do ini, deveremos proceder de uma forma um pouco diferente.
Create:
Variável=ini_read_real("Seção","Chave",Default)
Como vimos na aula anterior, existem dois tipos de valor, a do tipo real e a do tipo string, então, sempre preste atenção quando for criar uma variável com INI. No caso acima, estamos definindo o valor da “Variável” através do arquivo.ini. Default é o valor inicial dele, ou seja:
Pontos=0
É o mesmo que:
Pontos=ini_read_real(“Progresso”,”Pontos”,0)
Note que, quando nos referimos a uma seção ou a uma chave, sempre escrevemos entre aspas.

Terceiro Passo – Salvando o novo valor:
Agora que já sabemos como criar as variáveis, devemos saber como gravar os valores delas, para que depois, possamos iniciar o jogo com as variáveis do jeito que deixamos!
O procedimento é semelhante ao de carregar, fazemos da seguinte forma:
ini_write_real(“Progresso”,”Pontos”,Pontos)
O que fizemos acima é bem simples. Chamamos a função ini_write_real() e salvamos o valor de “Pontos” na chave “Pontos” pertencente a seção “Progresso”. Cuidado para não confundir a chave “Pontos” com a variável “Pontos”. Embora a escrita seja a mesma, uma não possui aspas, logo, é uma variável.

Agora que você salvou algo no INI, adivinha o que aconteceu? O arquivo que abrimos que, antes não existia agora existe, e está no mesmo lugar que a sua gmk! Seu arquivo.ini só será criado depois que você gravar algo nele. Agora você já sabe responder a pergunta do primeiro passo!

Pronto, isto é tudo o que você precisa saber para manipular dados de um arquivo.ini! As outras funções você raramente irá usar. A lógica é a mesma, basta informar qual chave/seção você gostaria de manipular. Por exemplo, para checar a existência de uma chave e exclui-la.
Código:
if ini_key_exists(“Perfil”,”Nome”){ //Checa se a chave existe...
ini_key_delete(“Perfil”,”Nome”)//...e a deleta!
}
Isto encerra as aulas sobre arquivos.ini. Agora, você já sabe como usar arquivos.ini! Seja criativo, bole soluções para seus problemas com save/load, tudo depende apenas de seu raciocínio. Duvidas, criticas e elogios são bem vindos!

Espero que tenha gostado!
blz


Última edição por Willy em Qua 13 Nov 2013, 16:49, editado 1 vez(es)

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Carlos Mahnke em Dom 06 Nov 2011, 14:17

Muito legal a série Willy. Como sugestão, vc poderia ensinar a utilizar um sistema bem simplificado de criptografia pra usar com um save em ini, já que "puro" ele pode ser editado livremente pelo jogador.

(Sei que há uma gama de DLLs pra criptografia mas em casos onde não se faz necessário um simples sistema de "chaves" substituindo caracteres é perfeitamente funcional)

Carlos Mahnke

Ranking : Sem avaliações
Número de Mensagens : 202
Data de inscrição : 27/07/2011
Notas recebidas : A+B (não colocar conceito)
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Denbs em Dom 06 Nov 2011, 14:22

Cara, bom tutorial(ou aula), ta tudo bem explicado e agora sei como usar ini, tava esperando logo esse tuto ainda bem q vc postou logo^^

flw

Denbs

Número de Mensagens : 204
Idade : 19
Data de inscrição : 19/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy em Dom 06 Nov 2011, 14:24

Eu havia pensado em fazer isso também, mas acabei esquecendo...
Porém, já existe um tópico falando sobre isso (resposta do Kabeção).
Codificar e Descodificar INI

Se der tempo, talvez eu faça algo do tipo, mas ultimamente o tempo está meio corrido...

Obrigado pelos comentários!
blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Dancity em Dom 06 Nov 2011, 14:25

Muito bom, Willy. Explicou direitinho, passo-a-passo como se abre, carrega e se fecha um .ini, parabéns.

Gostaria de mais tutoriais como estes, são de ótima qualidade, e de grande ajuda ;D

Dancity

Ranking : Nota A
Número de Mensagens : 1339
Data de inscrição : 11/01/2009
Notas recebidas : A
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por paladini em Dom 01 Jan 2012, 20:52

Ei Willy, muito bom o tutorial, porém estou com um problema. Não sou nada bom em GML, mas tô tentando aprender, para isso criei uma engine bem simples pra aprender a usar os ini. Criei uma room, e um objeto.

Esse objeto tem um evento Create e tem o seguinte código (acho que está errado):

Código:

ini_open("config.ini");
global.Option = ini_read_string("Config","Tela-cheia",0);
ini_write_string("Config","Tela-cheia",0)

Quando executo o programa, ele cria o ini, e ele fica assim:

Código:


[Config]
Tela-cheia=

Porque ele não fica assim:
Código:

[Config]
Tela-cheia=0

??

O que eu fiz de errado?

Valeu Willy, mto bom o seu tutorial!

paladini

Número de Mensagens : 175
Idade : 20
Data de inscrição : 01/12/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.techsempre.com

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy em Sab 07 Jan 2012, 16:41

Isto acontece porque você está salvando um valor "real" em um campo onde deveria ser "string". Para isso, no ini_write_string, coloque o zero da seguinte forma: string(0); Isso converte real em string.
Ou se preferir, troque o ini_write_string por ini_write_real

Qualquer coisa é so falar.
flws...
blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por PODEROS ARAN em Qui 24 Maio 2012, 16:19

Parabéns velho!

Nota 10 o teu tutorial. Fiz o que eu precisava rapidamente gastando 5 minutos lendo as três aulas.

PODEROS ARAN

Número de Mensagens : 19
Idade : 23
Data de inscrição : 16/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Arkd em Qui 31 Jan 2013, 21:33

Muito bom cara Very Happy cheers muito bom mesmo, eu precisava mesmo disso, bolei um belo sistema de save Very Happy, valeu Willy, Parabens, otimo tutorial Very Happy

Arkd

Número de Mensagens : 291
Idade : 18
Data de inscrição : 03/04/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.arkadesgames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por dharrison em Sab 26 Abr 2014, 01:25

Willy

Preciso carregar um valor de uma ini para as opções do jogador, porém não posso predefiní-la.

No caso está da seguinte forma
Código:
ini_read_real("options","tela",2)

O problema é: não quero que ele configure como 2, e sim que use o valor que está contido na ini... comofas?

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy em Sab 26 Abr 2014, 01:44

Os valores default só entram em cena quando o INI não encontra a chave na seção. Portanto, se você está tentando carregar um valor do INI mas o mesmo não corresponde ao esperado, significa que o o INI não está carregando, logo, um erro na programação.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Gabreel em Sab 26 Abr 2014, 01:51

Se você não achar o erro, usa o file_exists() para ver se o caminho ao arquivo está certo! (lembrando que precisa estar na mesma pasta do jogo, no caso do GM8, e no included files no caso do GMS)

Gabreel

Número de Mensagens : 2227
Idade : 20
Data de inscrição : 02/10/2009
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por dharrison em Sab 26 Abr 2014, 09:15

Ja verifiquei o arquivo, ele esta alterando corretamente.
Porém acho que não estou conseguindo fazer a variável lê-lo, pois mesmo mudando o default nada acontece.
Código:
escolha1=
ini_open("userconfig.cfg");
ini_read_real("options","tela",0);
ini_close()

É assim que se atribui o valor da ini a variavel?

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Willy em Sab 26 Abr 2014, 13:05

Ah, é por isso... Me desculpe, eu não reparei isso no primeiro código.

ini_read_* retorna um valor, portanto, a variável que deve ser atualizada deve estar antes do comando da seguinte forma:
Código:
ini_open("userconfig.cfg");
escolha1 = ini_read_real("options","tela",0);
ini_close();

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por DUDU951 em Sex 27 Jun 2014, 23:53

Se tiver apenas 1 arquivo ini no jogo, não terá a necessidade de fecha-lo?


Última edição por DUDU951 em Sab 28 Jun 2014, 21:39, editado 1 vez(es)

DUDU951

Número de Mensagens : 90
Idade : 17
Data de inscrição : 24/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Witen em Sab 28 Jun 2014, 08:07

DUDU951 escreveu:1 arquivo ini pode salvar apenas 1 seção, chave, valor por vez?

Se tiver apenas 1 arquivo ini no jogo, não terá a necessidade de fecha-lo?

1- Você pode salvar vários valores em uma seção, na chave somente um, a chave representa a variável que vai guardar o valor. Exemplo.
Código:
[Configuracao do server]//Seção
//Chave = valor
Porta = 888
2-O bom é sempre recolher seus valores e fechar, economizando assim memoria.

Witen

Ranking : Sem avaliações
Número de Mensagens : 515
Idade : 17
Data de inscrição : 23/05/2012
Reputação : 36
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.wibix.webs.com

Voltar ao Topo Ir em baixo

Re: Aula 03 - Manipulando o arquivo.ini

Mensagem por Conteúdo patrocinado Hoje à(s) 10:01


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum