Mayo 24, 2013, 01:49:44 am

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

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

Desconectado dixon2010

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 15
  • Nos estamos dañando la vista
    • Ver Perfil
 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 »
No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.

Conectado Texic

  • Moderadores globales
  • Okupa
  • *
  • Puntos: 659
  • Mensajes: 1790
  • 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

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 15
  • Nos estamos dañando la vista
    • Ver Perfil
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 »

Desconectado Wadk

  • In order to see...
  • Administrador
  • Legendario
  • *
  • Puntos: 130
  • Mensajes: 2239
  • 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

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 15
  • Nos estamos dañando la vista
    • Ver Perfil
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 »

Desconectado soccer2008

  • Okupa
  • *
  • Puntos: 0
  • Mensajes: 520
  • 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

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 15
  • Nos estamos dañando la vista
    • Ver Perfil
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");

Desconectado Wadk

  • In order to see...
  • Administrador
  • Legendario
  • *
  • Puntos: 130
  • Mensajes: 2239
  • 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: 520
  • 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)