¿Se pueden manejar ficheros de texto con Director?

Hola,
Me gustaría saber si con director puedo manejar ficheros de texto (abrirlos, cerrarlos, leerlos, escribirlos, guardarlos, etc). Si existiera la posibilidad de manejar bases de datos ya sería lo mejor.
Muchas gracias.

1 Respuesta

Respuesta
1
Para manejar bases de datos debes comparte algún xtra y los precios oscilan entre las 70.000 pts y las 300.000.
Si quieres comprarte alguno te doy direcciones.
Para ficheros de texto tienes el fileio que te viene con director.
Abrir directo.
property p_direccion,p_texto
on getPropertyDescriptionList
lista= [:]
addProp lista, #p_direccion,\
[#comment: "escribe la ruta del archivo",#format:#String,\
#default: "texto.txt" ]
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
end getPropertyDescriptionList
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=the pathname&p_direccion
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 guarda el contenido de la variable en un texto de director
p_texto.text=texto
--Se borra la instancia
Closefile(instancia)
end
Guardar directo:
property p_direccion,p_texto
on getPropertyDescriptionList
lista= [:]
addProp lista, #p_direccion,\
[#comment: "escribe la ruta del archivo",#format:#String,\
#default: "texto.txt" ]
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=the pathname&p_direccion
--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=p_texto.text
--Escribe dentro del archivo txt
Writestring(instancia, texto)
--Se borra la instancia
Closefile(instancia)
end
Abrir con el navegador:
On getBehaviorTooltip me
return \
"Usa este comportamiento para leer el contenido de un texto externo y colocarlo en un text de director con ayuda del navegador. "&\
return&\
"Comportamiento realizado por bedelludrica: " & \
return&\
"[email protected] "
end getBehaviorTooltip
property p_texto--,p_direccion
on getPropertyDescriptionList
lista= [:]
--
-- addProp lista, #p_direccion,\
--[#comment: "escribe la ruta del archivo",#format:#String,\
--#default: "texto.txt" ]
--
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
end getPropertyDescriptionList
on mouseup me
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)
p_texto.text=texto
instancia=void
end if
end
guardar on el navegador de window:
on getBehaviorTooltip me
return \
"Usa este comportamiento para guardar el contenido de un text interno de director y colocarlo en un texto externo con la ayuda del navegador. "&\
return&\
"Comportamiento realizado por bedelludrica: " & \
return&\
"[email protected] "
end getBehaviorTooltip
property p_direccion,p_texto,p_t
on getPropertyDescriptionList
lista= [:]
addProp lista, #p_direccion,\
[#comment: "escribe el nombre archivo predeterminado",#format:#String,\
#default: "archivo.fty" ]
addProp lista, #p_t,\
[#comment: "escribe el titulo de la ventana save",#format:#String,\
#default: "bedelludrica" ]
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=displaysave(instancia,p_t,p_direccion)
if nombre_archivo="" then return FALSE
--abre el archivo en la memoria para poder trabajar con el
--el tercer parametro es 1 porque el archivo se abre sòlo 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)
texto=P_TEXTO.text
writestring(instancia,texto)
texto=readfile(instancia)
closefile(instancia)
return true
instancia=void
end
Lo primero muchas gracias por responder. La respuesta sobre los ficheros me ha sido de gran ayuda. La pregunta que te quiero hacer ahora es sobre los xtras para bases de datos.
¿Por internet no se podría encontrar algún xtra 'gratuito'? Es que soy estudiante y no puedo pagar 70.000 ptas por un software, no me dedico profesionalmente, entonces ...
Es imposible piratear xtra que yo sepa. Son cosas muy específicas y alguien te lo tendría que regalar cosa que dudo. Lo que puedes hacer es contactar directamente con las empresas de xtra y decirles que eres estudiante. A veces te suelen regalar el xtra si estás en esta situación.ç

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas