Nueva pregunta sobre Director + Lingo + Ficheros

Hola Martín,
1)Me gustaría saber como puedo acceder a ficheros en tiempo de ejecución, a través de Lingo o utilizando los métodos del Xtra fileio. La idea es que el usuario entre una serie de datos, que este se guarde en un fichero y que la próxima vez que acceda a la aplicación lo abra para que el usuario lo tenga ya tecleado.
2)Además, me gustaría saber como puedo ver los distintos métodos de cualquiera de los Xtra que vienen con director.
3) ¿Cuál es la diferencia entre los Xtra "fileio" y "fileXtra"?
Gracias por ´tu tiempo.
Respuesta
1
Fileo es gratuito y sirve para acceder a archivos de texto y el file xtra sirve para copiar acvos, mover archivos y utilidades de sistema operativo.
Aquí te pongo ejemplos para abrir y guardar archivos listos para usar.
On abrir
instancia=new(xtra "fileIO")
nombre_archivo="C:\Mis documentos\pref \nuevor.txt"
if nombre_archivo="" then return FALSE
--Esto analiza los errores si se producen
if status(instancia)<>0 then
fallo=error(instancia, status(instancia))
alert ("Se ha poducido un error en la lectura, debe repetir la operaciòn:")
return ""
end if
--Abre el archivo en la memoria para poder trabajar con el
--el tercer parámetro es 1 porque el archivo se abre solo para leer
openfile(instancia, nombre_archivo, 1)
--Se lee el contenido del archivo y se almacena en una variable
texto=readfile(instancia)
--Se borra la instancia
Closefile(instancia)
--Se guarda el contenido de la variable en un texto de director
member("texto").text=texto
end
on guardar
instancia=new(xtra "fileIO")
nombre_archivo="C:\Mis documentos\pref \nuevor.txt"
--Esto analiza los errores si se producen
if status(instancia)<>0 then
fallo=error(instancia, status(instancia))
alert ("Se ha poducido un error en la lectura, debe repetir la operaciòn:")
return ""
end if
--Abre el archivo en la memoria para poder trabajar con el
--el tercer parámetro es 1 porque el archivo se abre solo para grabar
openfile(instancia, nombre_archivo, 2)
--Borra el archivo existente, si es que existiera.
delete(instancia)
--Crea de nuevo ese archivo para poder guardarlo con los nuevos datos
createfile(instancia, nombre_archivo)
--Abre el archivo en la memoria para poder trabajar con el
--el tercer parámetro es 1 porque el archivo se abre solo para grabar
openfile(instancia, nombre_archivo, 2)
--Se crea una variable con el texto que se quiere guardar en el archivo txt
texto=member("texto").text
--Escribe dentro del archivo txt
Writestring(instancia, texto)
--Se borra la instancia
Closefile(instancia)
end
on abrir
instancia=new(xtra "fileIO")
nombre_archivo=displayopen(instancia)
if nombre_archivo=void then
return FALSE
else
if status(instancia)<>0 then
fallo=error(instancia,status(instancia))
alert ("Se ha poducido un error en la lectura, debe repetir la operaciòn:")
return ""
end if
openfile(instancia, nombre_archivo,1)
texto=readfile(instancia)
closefile(instancia)
member("texto").text=texto
instancia=void
end if
end
on guardar
instancia=new(xtra "fileIO")
nombre_archivo=displaysave(instancia,"bedelludrica","datos.txt")
if nombre_archivo="" then return FALSE
openfile(instancia, nombre_archivo,2)
texto=member("texto").text
writestring(instancia,texto)
texto=readfile(instancia)
closefile(instancia)
return true
instancia=void
end
Gracias, con respecto a esto:
1) ¿Cuántas instancias puedo tener abierto?
2)¿Puedo buscar dentro de un fichero? O en su defecto, ¿cómo puedo buscar dentro de una cadena de texto?
Perdona que te vuelva a molestar. Pero tengo otras dos preguntas:
1)Imagina que tengo:
set mi_variable = "Mi nombre es Pepito Perez"
Como puedo jugar con esta cadena de caracteres. Por ejemplo, si esto lo hubiera introducido un usuario y yo se que siempre va a poner "Mi nombre es" y quiero obtener en otra variable "nombre" el valor "Pepito Perez".
2) ¿Hay alguna forma de pasarle parámetros a Director/Lingo, al estilo de un programa normal?:
mi_proyecto mi_primer_parametro mi_segundo_parametro
Puedes abrir varias instancias al mismo tiempo, pero en este caso las instancias se cierran tan pronto como se carga el texto:
--instancia=void
.
Respecto a como manejar el texto te recomiendo que lo hagas una vez el texto se haya cargado con los coamdos de texto.
put member("g").text
-- "ccccccc ccccccccccc
Ccccccccccc
Ccccccccccc"
put member("g").line[1]
-- "ccccccc ccccccccccc"
put member("g").word[1]
-- "ccccccc"
put member("g").word[1..3]
-- "ccccccc ccccccccccc
ccccccccccc"
put member("g").word[1..2]
-- "ccccccc ccccccccccc"
put member("g").char[1..2]
-- "cc"
put member("g").char[2]
-- "c"
--Cantidad de lineas
Put member("g"). Line. Count
-- 4
Vale, con respecto a las cadenas de texto todo de acuerdo. Pero tengo varias dudas/problemas:
1)Quisiera pasarle parámetros a un ejecutable director. ¿Esto se puede hacer?
2)¿Cómo puedo cambiar el nombre de la Stage para que en la cabecera salga la cadena de texto que yo deseo?
3)Y un grave problema que tengo. En mi programa, cargo archivos html, que me permiten navegar de unos ficheros a otros. Lo hago con "on hyperlinkClicked". Bueno, pues si le doy al play, no me hace el link, pero si lo paro y luego le doy al play desde el punto donde me quedé, me hace perfecto el link, cambio el fichero asignado al member, y plas! De nuevo no puedo hacer los links. Si repito la operación de parar y play, hace los links perfectamente. Esto lo tengo atascado durante varios días y realmente me siento parado, ¿podrías darme alguna idea?
Muchas gracias.
No me he enterado de nada. Repite esto en otra pregunta nueva.
Te repito las preguntas:
1) Se puede pasar parámetros a un programa de director. Como cuando se hace desde una línea de comandos: copy mi_fichero tu_fichero. En este caso, mi fichero y tu_fichero son parámetros.
2)Estoy haciendo una pequeña aplicación en la que se navega a través de ficheros html. Estos fichero tienen una serie de links. Yo detecto en que link han pinchado a través de un "on hyperlinkClicked". El problema reside, en que cuando cargo una página en tiempo de diseño sobre un member de tipo texto, no hay ningún problema y hago: set the filename of member "texto" = the moviepath&"mi_otro_fichero.html", y la página se cambia perfectamente. Sin embargo, si intento hacer esto otra vez con este nuevo fichero, no funciona, porque simplemente, no detecta el link ni hace nada.
Como esto ocurre cuando cambio la página en tiempo de ejecución, si paro la aplicación y luego la reinicio,
la página ya estaría cargada en tiempo de diseño, y se puede hacer los links de nuevo.
Espero que te halla servido de algo más. Muchas gracias.
Te he dicho que emprezaras en otra pregunta nueva y no en la misma . Lo único que tienes que hacer es finalizar esta e iniciar otra NUEVA.
Para pasar información a la película debes hacer esto:
Este archivo lo debes crear con el notepad y llamarlo lingo.ini
On startup
Global fg
fg=34
end startup
Con esto al iniciar la película tiene una nueva variable.
Como no lo habías entendido, creía que te referías a que lo explicara de nuevo. Gracias de todas formas. Aunque comprendo que quieras más preguntas para tener más puntuación, y que por esa razón SóLO contestas a una pregunta de las que te hago cada vez. No creo que nadie se tenga que enfocar esto como una carrera. Y no quiero discutir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas