[Dúvida] Como ler arquivo txt,e executar como gml?

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

[Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por un00brn em Qui 06 Jun 2013, 02:42

Por exemplo.

Tenho um arquivo externo variaveis.txt
com a informação abaixo.
Código:

variavel  = "lol";
variavel2 = "Minha segunda var";
variavel3 = "Minha terceira var";

Queria que o game maker 8.1 abrisse o variaveis.txt e transformasse texto em código gml e o próprio executasse.
E se também se teria como reconhecer se existe as variáveis.
por exemplo.

Se existir variavel3 fazer algo!


Obrigado gente!
UN00brn

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por Gonçalves em Qui 06 Jun 2013, 09:36

É simples:

Código:
var file,text;

// Aqui abrimos o arquivo.txt e guardamos na variável "file"
file = file_text_open_read("ARQUIVO.txt")

// Lemos todo o seu conteúdo e salvamos numa string
text = file_text_read_string(file)

// Fechamos o arquivo
file_text_close(file)

// Executamos a string salva na variável "text"
execute_string(text)

E pra checar se a tal variável existe, você pode usar:

Código:
// Para variáveis locais
variable_local_exists("lol")

// Para variáveis globais (no caso global.lol)
variable_global_exists("lol")

Lembre-se que execute_string é uma função extremamente lenta, então nem pense em usar no Step, por exemplo. Uma alternativa seria criar um objeto dentro do jogo e definir como seu evento Step o tal código, mas só se for o caso mesmo, no Create não tem tanto problema.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por un00brn em Qui 06 Jun 2013, 12:31

Então, no meu arquivo.txt tem o seguinte.
Código:

if global.hash = "b2e4cd7d008014dbf87cb68efe5f838e" {global.result = "0102030405"; global.passcrack = true  ;}
if global.hash = "b88def5dd231ecb62c59d31832cf681b" {global.result = "1020304050"; global.passcrack = true  ;}
if global.hash = "202cb962ac59075b964b07152d234b70" {global.result = "123"      ;global.passcrack = true    ;}
if global.hash = "81dc9bdb52d04dc20036dbd8313ed055" {global.result = "1234"      ;global.passcrack = true  ;}
if global.hash = "827ccb0eea8a706c4c34a16891f84e7b" {global.result = "12345"      ;global.passcrack = true  ;}
if global.hash = "e10adc3949ba59abbe56e057f20f883e" {global.result = "123456"    ;global.passcrack = true  ;}
if global.hash = "b09c600fddc573f117449b3723f23d64" {global.result = "adm"        ;global.passcrack = true  ;}
if global.hash = "21232f297a57a5a743894a0e4a801fc3" {global.result = "admin"      ;global.passcrack = true  ;}
if global.hash = "f6fdffe48c908deb0f4c3bd36c032e72" {global.result = "adminadmin"  ;global.passcrack = true  ;}
if global.hash = "0192023a7bbd73250516f069df18b500" {global.result = "admin123"    ;global.passcrack = true  ; }
if global.hash = "d829b843a6550a947e82f2f38ed6b7a7" {global.result = "123admin"    ;global.passcrack = true  ;}
if global.hash = "4297f44b13955235245b2497399d7a93" {global.result = "123123"      ;global.passcrack = true  ;}
if global.hash = "ed2b1f468c5f915f3f1cf75d7068baae" {global.result = "12341234"    ;global.passcrack = true  ;}
if global.hash = "ba86f2bbe107c7c57eb5f2690775c712" {global.result = "ubnt"  ;global.passcrack = true  ;}
Essa variavel global.hash, já está definida pelo usuário.
Então, quero verificar se a global.hash que o user digitou tem em alguma parte desse arquivo.txt!
E se for igual a do arquivo.txt vai transformar a global.result em outra, no caso a que for da hash.

Pode demorar bastante tempo. mas o importante é que ele procure a global.hash no arquivo.txt


un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por luiz_eldorado em Qui 06 Jun 2013, 14:53

Normalmente, colocar códigos GML diretamente num arquivo, não é uma boa idéia. Mas percebi que é um tipo de banco de dados. Então, você pode, numa engine separada no GM, criar uma ds_map com esses valores, colocar num arquivo de texto, pra então ler com a sua engine do seu programa (que já sei o que está tentando fazer, hehe).

Use ds_map_write e ds_map_read pra essas coisas. Dê uma olhada no manual.

Até mais

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por PedroX em Qui 06 Jun 2013, 15:21

Use execute_file('nomedoarquivo.txt', 0).

Não precisa de mais nada. Mas será lento.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por un00brn em Qui 06 Jun 2013, 20:39

luiz_eldorado escreveu: Normalmente, colocar códigos GML diretamente num arquivo, não é uma boa idéia. Mas percebi que é um tipo de banco de dados. Então, você pode, numa engine separada no GM, criar uma ds_map com esses valores, colocar num arquivo de texto, pra então ler com a sua engine do seu programa (que já sei o que está tentando fazer, hehe).

Use ds_map_write e ds_map_read pra essas coisas. Dê uma olhada no manual.

Até mais

Ae Luiz, me ensina esse macete do ds_map.
Acho que eu preciso disso mesmo.
Tem como eu identificar por espaços?
Por exemplo, no arquivo.txt teria
Código:

var1 valor valor2 valor3
var2 valor valor2 valor3
var3 valor valor2 valor3
Então eu queria q o game maker entendesse que
teria a var e na frente dela teria o valor dela.
Ou pode dividir por ; ou , tanto faz...
Por exemplo
Código:

var1,valor,valor2,valor3
var2,valor,valor2,valor3
var3,valor,valor2,valor3

PedroX escreveu:Use execute_file('nomedoarquivo.txt', 0).

Não precisa de mais nada. Mas será lento.

Vou dá uma olhadinha, mas acho que o metodo do Luiz caíria bem, vocês podem me ajudar com ds_map?

EDIT

O método do PedroX deu certo!
Mas a mameira de divisões cairia melhor!
De toda forma agradeço a todos vocês pela a ajuda!
Se alguém souber de DS_MAP me ajudem Very Happy
Obrigado gente

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por luiz_eldorado em Sex 07 Jun 2013, 12:02

Depois de alguns anos de trabalho, consegui fazer um editor de ds_maps! Dê uma olhada nos códigos dele, você pode entender muito sobre ds_maps ;)

https://dl.dropboxusercontent.com/u/69176739/Edit%C3%A1veis/editardsmaps.gmk

(PS: só a parte de desenhar a ds_map na tela é que foi complicada...)

Até mais

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: [Dúvida] Como ler arquivo txt,e executar como gml?

Mensagem por Conteúdo patrocinado Hoje à(s) 16:19


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