Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: ¿Como abrir y guardar un string? usando get_open_filename y get_save_filename  (Leído 1802 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dixon2010

 Hola. Gracias por leer esta pregunta espero me puedas ayudar ;)

  Estoy creando una configuracion control y almaceno dicha configuracion como un string en la siguiente variable:

 teclasausar="11037038039000000000/21087067065000000000/"

 Presionando los botones Abrir y Guardar de la configuracion control se jecutan las siguientes funciones de la siguiente manera:

 teclasausar=get_open_filename(".txt","configuracion")
 get_save_filename(".txt","configuracion")

 Y no me funcionan

 Estos son mis problemas
  1_No sé que es un filtrer (filtro)
  2_No sé como asignarle el string del archivo
  3_No sé si tengo o no tengo que usar las siguientes variables
   file_text_read_string(fileid)  
   file_text_open_read(fname)
   file_text_write_string(fileid,str)
  4_no se cuales son mis otros problemas

 Ya puedes responder :)




« Última modificación: Marzo 23, 2010, 07:03:49 pm por dixon2010 »

Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Asi jamás te va a funcionar  XD
seria asi: get_open_filename("Archivos de texto|*.txt","") El primer paramentro es el filtro, primero se pone el nombre del filtro y luego separado por una barra vertical se pone el filtro de extension. El segundo parámetro es el nombre de archivo por defecto que va a aparecer. Con get_save_filename lo mismo
Pero aún asi jamás vas a poder guardar un texto de esa manera en un txt, tienes q usar las funciones que pusiste más abajo, te las paso a explicar con un ejemplo

teclasausar="11037038039000000000/21087067065000000000/"
usr=file_text_open_append(get_open_filename("Archivos de texto|*.txt",""))
file_text_writeln(usr)
file_text_write_string(usr,teclasausar)
file_text_close(usr)

Luego para leer

user=file_text_open_read(get_open_filename("Archivos de texto|*.txt",""))
teclasausar=file_text_read_string(user)
file_text_close(user)

Experimenta con eso, ya verás que te sale
Suerte  :)




 


Desconectado dixon2010

Gracias Texic

 He aprendido a habir un archivo y asignarle su string a una variable con solo usar lo que me enviastes y es perfecto.

user=file_text_open_read(get_open_filename("Archivos de texto|*.txt",""))
teclasausar=file_text_read_string(user)
file_text_close(user)

Pero al guardar me pide primero habrir un archivo y eso no es lo que quiero, lo que quiero es que al presionar el boton guardar se ejecute la funcion get_save_filename y se cree un archivo con el strin de la variable teclasausar y se guarde donde lo desee.
« Última modificación: Marzo 23, 2010, 07:56:32 pm por dixon2010 »

Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.
 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
get_open_filename y get_save_filename hacen eso, pedir al usuario que seleccione un archivo.

Lo que querés es algo así:
Código: (Cargar) [Seleccionar]
user=file_text_open_read("partida.sav");
teclasausar=file_text_read_string(user);
file_text_close(user);
Código: (Guardar) [Seleccionar]
user=file_text_open_write("partida.sav");
file_text_write_string(user,teclasausar);
file_text_close(user);

 


Desconectado dixon2010

Gracias Wadk, Texic y eduardo960

Ustedes me enseñaron a abrir y guardar los felicito :), No sabia que aprender a Abrir y Guardar me costaria mas de 4 horas :-[. Aunque he querido aprender eso desde hace mas de un año ¿increible? :(. Pero bueno aprendi y perfeccione los codigos aunque falta que aparesca la informacion que dice: El documento ya existe ¿Desea reemplazarlo?



:-X talvez me tome unos 2 años mas

Bueno en fin aquí está los codigos finales "Por ahora" de como habrir y cerrar con get_save_filename y get_open_filename,

Para habrir:
Código: [Seleccionar]
user=file_text_open_read(get_open_filename("Archivos de texto|*.txt",""))
 if(real(user))
 {
  teclasausar=file_text_read_string(user)
  file_text_close(user);
 }

Para guardar
Código: [Seleccionar]
archivo=string(get_save_filename("Archivos de texto|*.txt",""))
 if(file_exists(archivo)=0)archivo+=".txt"
 if(archivo!=".txt")
 {
  user=file_text_open_write(archivo);
  file_text_write_string(user,teclasausar);
  file_text_close(user);
 }

Recuerden que la variable teclasausar en este caso es la viariable que contiene el texto a guardar y que a su vez es la que contendrá el string del archivo a habrir.

Y por ultimo les dejo un ejemplo bastante que los enseñará a Abrir y Guardar un string el cual pueden descargarlo desde el siguiente link: http://www.megaupload.com/?d=GE5UUXMP
« Última modificación: Marzo 23, 2010, 10:26:58 pm por dixon2010 »

Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.
 


Desconectado soccer2008

  • Okupa
  • *
  • Puntos: 0
  • Mensajes: 518
  • WWW.fileceru.foroactivo.com
    • Ver Perfil
el valor q recibes de esa función aplicale lo siguiente:

Código: [Seleccionar]
if(file!=""){
if(file_exists(file))
{
}
else{
       show_message("error, el archivo no existe!!!!");
}
}
else{
   show_message("formato no admitido =)");
}

Un foro donde hay de todo: http://fileceru.foroactivo.net (se necesitan moderadores para el foro)
 


Desconectado dixon2010

Gracias por la idea soccer2008  ;)

Pero cuando se desea guardar un archivo y el archivo no existe simplemente crea uno nuevo sin avisar que el archivo no existe y si existe dicho archivo lo reemplaa automaticamente.

Ahora el unico formato que se aceptará es el de ".txt" y no creo que exista manera de que alguien por alguna razon logre seleccionar un formato distinto ya que la variable get_open_filename("Archivos de texto|*.txt","") está bien definida y no acepta otro tipo de formato o eso imagino. por lo tanto el mensaje de formato no admitido no es nesesario :-[

Me distes una gran idea: Usaré la funcion show_message() cuando al abrir un archivo de texto y este no contenga una configuracion adaptada al programa, y seá algo como esto:

show_message("Este archivo de texto no contiene una configuracion compatible");

Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.
 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
¿Entonces querés la ventana preguntando dónde guardar? Tu segundo mensaje me confundió...
A ver, qué te parece esto:
Código: (Cargar) [Seleccionar]
while(1){ //Bucle infinito
  archivo=get_open_filename("Archivos de texto|*.txt",working_directory+"\*.txt");  //Pedimos un archivo
  if(archivo=""){ //Si el usuario presionó cancel
    break; //Salimos del bucle
  }
  if!(file_exists(archivo)){  //Si el archivo no existe
    show_message("El archivo especificado no existe.");  //Mostramos un error
    continue;  //Y volvemos al principio del bucle
  }
  f=file_text_open_read(archivo);  //Abrimos el archivo
  teclasausar=file_text_read_string(f);  //Leemos el contenido
  file_text_close(f);  //Lo cerramos
  break;  //Y nos salimos del bucle infinito
}

Código: (Cargar) [Seleccionar]
while(1){ //Bucle infinito
  archivo=get_save_filename("Archivos de texto|*.txt",working_directory+"\*.txt");  //Pedimos un archivo
  if(archivo=""){ //Si el usuario presionó cancel
    break; //Salimos del bucle
  }
  //No importa si el archivo no existe porque se crea automáticamente.
  f=file_text_open_write(archivo);  //Abrimos el archivo
  file_text_write_string(f,teclasausar);  //Escribimos la variable teclasausar
  file_text_close(f);  //Lo cerramos
  break;  //Y nos salimos del bucle infinito
}

 


Desconectado soccer2008

  • Okupa
  • *
  • Puntos: 0
  • Mensajes: 518
  • WWW.fileceru.foroactivo.com
    • Ver Perfil
Hay q tener en cuenta tbm si el archivo es demasiado grande, sobrecargaría la memoría, lo recomendable es leer linea x linea e ir almacenando y liberando la memoria...

Un foro donde hay de todo: http://fileceru.foroactivo.net (se necesitan moderadores para el foro)