[pergunta]abrir texto e executar como codigo

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

[pergunta]abrir texto e executar como codigo

Mensagem por peixoto em Sex 29 Abr 2011, 10:44

Olá, queria saber se o seguinte codigo serve para abrir um arquivo .txt e usar o que esta escrito neste arquivo como um script:

cod = get_open_filename('Abra um arquivo de texto|*.txt*.*','')
if !(cod = '') then
{
global.mp = filename_name(cod)
script_get_text(script_loader)}

Caso não seja isto gostaria que vocês me passacem o codigo correto pois estou precisando de algo assim como pedi.

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por MatheusReis em Sex 29 Abr 2011, 10:57

Acredito que o seu não iria funcionar.
//
Existem 2 códigos que executam scripts a partir de strings:
-execute_string("vidas=3");
Executa o código dentro das aspas.
-execute_file("arquivo_com_codigo.txt");
Executa o código dentro do txt indicado.
No caso o que você quer fazer ficaria mais ou menos assim:
Código:

global.arquivo_script=get_open_filename('Abra um arquivo de texto|*.txt','');
if !(global.arquivo_script=''){ execute_file(global.arquivo_script) };

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por peixoto em Sex 29 Abr 2011, 11:14

funcionou mais agora como faço para ele checar o que esta escrito no arquivo de texto e (dependendo do que estiver escrito)executar um codigo gml?

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por MatheusReis em Sex 29 Abr 2011, 11:18

hmm.. não consegui entender a pergunta, pode explicar melhor? scratch

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por peixoto em Sex 29 Abr 2011, 13:23

Posso.O que eu queria é que por ex:

quando o codigo for aberto(por meio deste codigo)e salvo no script queria que o que tinha sido escrito dentro do arquivo txt(que foi aberto pelo codigo q vc me passou)fosse checado(para ver se estava escrito algo como:

restar,game_over,parar_game,click=true,etc)e dependendo do que estive-se escrito no arquivo txt queria que o gm executasse um codigo gml(que eu irei colocar)

entendeu agora?é tipo o sistema de abrimento de escripts do gm!

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por MatheusReis em Sex 29 Abr 2011, 14:59

Hm... para isso teriamos que primeiro ler as strings dentro do texto.
Poderiamos ler linha por linha, mas asseguir farei o game maker reconstruir o texto inteiro do arquivo como uma só string e depois analisar ela:
Código:
global.arquivo=get_open_filename('Abra um arquivo de texto|*.txt','');
if !(global.arquivo=''){
arquivoaberto=file_text_open_read(global.arquivo);
//abre o arquivo com o game maker
string_do_arquivo="";
while(!file_text_eof(global.arquivo)){
//isso faz o game maker repetir o processo abaixo até o fim do arquivo
string_antiga=string_do_arquivo;
nova_linha=file_text_read_string(arquivoaberto);
//Lê uma linha do arquivo até o fim
file_text_readln(arquivoaberto);
//Pula para a próxima linha
string_do_arquivo=string_antiga+nova_linha+"#";
//constroi essa linha na string
//(o "#" ali serve para pular uma linha
//é ignorado quando lido em codigo)
};
//agora temos o arquivo de texto inteiro na forma de string
//agora vamos procurar partes dele
if string_count("vidas",string_do_arquivo) {
//esse comando procura por pedaços de string dentro de uma maior
//no caso ele procura o numero de apariçoes da string "vidas"
//dentro da string_do_arquivo
//se ele for maior que 0, ele fará o código aqui dentro
fazer_o_que_o_peixoto_quer();
}};
file_text_close(arquivoaberto);
//libera o txt
Se quiser executar a string final basta usar
Código:
execute_string(string_do_arquivo)

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por saim em Sex 29 Abr 2011, 15:10

Cheque meu tutorial do game genérico, na assinatura.
Já testei e, pra executar um .txt como se fosse um script, uso o seguinte template:
Código:
MASK=working_directory+"\script_*.txt" //talvez você prefira tirar o "script_" da mask
SCRIPT=file_find_first(MASK, fa_readonly)

//draw_circular_electric_field(x, y, inner_radius,thickness,density,initial_angle,final_angle,color,connect)
execute_file(SCRIPT,x, y, 30,10,60,0,180,0,true)
Isso foi realmente usado no teste. O arquivo com o "script" contém o seguinte texto:

Código:
//draw_circular_electric_field(x,y,inner_radius,thickness,density,initial_angle,final_angle,color,connect)
//draws a ring section of randomly placed points connected (1 point/direction)

//first, set some variables and define their value automatically if it is possible
var cx, cy, in_rad, thick, dens, in_ang, end_ang, color, i;

cx=argument0 //center of ring - required
cy=argument1 //center of ring - required

if argument2
   in_rad=argument2  //inner radius
   else in_rad=max(sprite_width,sprite_height)*1.5

if argument3
   thick=argument3  //outer radius
   else out_rad=in_rad

dens=argument4  //spot density

in_ang=argument5 //even if it is 0 - inital angle

an_add=(argument6-in_ang)/dens //how much angle to add between spots

if argument7
   color=argument7  //even if it is 0 - color to be used
   else color=choose(c_blue, c_yellow, c_white, c_aqua)

//define the spots
for(i=0; i<dens; i+=1){
   dist=in_rad+random(thick)
   spot_x[i]=cx+lengthdir_x(dist,in_ang+i*an_add)
   spot_y[i]=cy+lengthdir_y(dist,in_ang+i*an_add)
   }

//draw the lines
for(i=1; i<dens; i+=1){
   draw_line_color(spot_x[i], spot_y[i], spot_x[i-1], spot_y[i-1], color, color)
   }
//final line
if argument8
   draw_line_color(spot_x[dens-1], spot_y[dens-1], spot_x[0], spot_y[0], color, color)

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por peixoto em Sab 30 Abr 2011, 09:12

Mathaeuz escreveu:Hm... para isso teriamos que primeiro ler as strings dentro do texto.
Poderiamos ler linha por linha, mas asseguir farei o game maker reconstruir o texto inteiro do arquivo como uma só string e depois analisar ela:
Código:
global.arquivo=get_open_filename('Abra um arquivo de texto|*.txt','');
if !(global.arquivo=''){
arquivoaberto=file_text_open_read(global.arquivo);
//abre o arquivo com o game maker
string_do_arquivo="";
while(!file_text_eof(global.arquivo)){
//isso faz o game maker repetir o processo abaixo até o fim do arquivo
string_antiga=string_do_arquivo;
nova_linha=file_text_read_string(arquivoaberto);
//Lê uma linha do arquivo até o fim
file_text_readln(arquivoaberto);
//Pula para a próxima linha
string_do_arquivo=string_antiga+nova_linha+"#";
//constroi essa linha na string
//(o "#" ali serve para pular uma linha
//é ignorado quando lido em codigo)
};
//agora temos o arquivo de texto inteiro na forma de string
//agora vamos procurar partes dele
if string_count("vidas",string_do_arquivo) {
//esse comando procura por pedaços de string dentro de uma maior
//no caso ele procura o numero de apariçoes da string "vidas"
//dentro da string_do_arquivo
//se ele for maior que 0, ele fará o código aqui dentro
fazer_o_que_o_peixoto_quer();
}};
file_text_close(arquivoaberto);
//libera o txt
Se quiser executar a string final basta usar
Código:
execute_string(string_do_arquivo)

não funcionou.na hora de ler o codigo da erro!Que será que houve?

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [pergunta]abrir texto e executar como codigo

Mensagem por Conteúdo patrocinado Hoje à(s) 09:40


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