Problema con fichero texto
Hola, tengo un problema al leer una base de datos (en realidad es un fichero de texto de extensión .txt que luego convierto en una lista de propiedades).
Hasta ahora he usado este fichero y lo he transformado en lista de propiedades y no me ha dado problemas. Pero cuando he metido la base de datos completa en ese fichero de texto (ya no la he podido meter con el notepad y he tenido que usar el wordpad) me ha dado en la aplicación en director que no puede leer el fichero.
Me he dado cuenta que si el fichero es de 2kb máximo no tengo problemas pero mi base de datos ocupa alrededor de 64 kb y entonces han aparecido los problemas.
Te mando un resumen del trace cuando no tengo problemas y cuando me sale el mensaje de error.
Sin problemas
== Script: (member 12 of castLib 1) Handler: loadData
--> text = openAndReadText()
== Script: (member 10 of castLib 1) Handler: openAndReadText
--> fileObj = new(xtra "FileIO")
== fileObj = <Xtra child "fileio" 1 4fbe74>
--> filename = "database.txt"
== fileName = "database.txt"
--> if filename = "" then return ""
--> openFile(fileObj,filename,1)
--> if status(fileObj) <> 0 then
--> text = readFile(fileObj)
== text = "[[#codigo: "1", #apellidos: "aaaaaaaaaaaa", #nombre: "eeeeeee", #fnaci: "02-01-992", #lnaci: "xxxxxx", #ffall: "", #lfall: "", #fmatr: "", #lmatr: "", #codpad: "2", #locpad: "", #codmad: "3", #locmad: ""......... (hasta 2kb)............................ ]]"
--> closeFile(fileObj)
--> return text
con problemas
== Script: (member 12 of castLib 1) Handler: loadData
--> text = openAndReadText()
== Script: (member 10 of castLib 1) Handler: openAndReadText
--> fileObj = new(xtra "FileIO")
== fileObj = <Xtra child "fileio" 1 4e96a8>
--> filename = "database.txt"
== fileName = "database.txt"
--> if filename = "" then return ""
--> openFile(fileObj,filename,1)
--> if status(fileObj) <> 0 then
--> text = readFile(fileObj)
== text = "[[#codigo: "1", #apellidos: "AAAAAAAA", #nombre: "BBBBBBB", #fnaci: "09.05.912", #lnaci: "XXXXXXXX", #ffall: "", #lfall: "", #fmatr: "27.12.930", #lmatr: "XXXXXXX", #codpad: "52", #locpad: "XXXXXXXX", #codmad: "53", #locmad: "MEÑACA".........(hasta 64 kb)........]]"
--> if text = "" then exit
--> list = value(text)
== list = <Void>
--> if listP(list) then
--> alert "Error reading database."
--> end
== Script: (member 1 of castLib 1)
No se si te servirá de referencia pero parece que no puede ni cerrar el fichero la segunda vez (¿tendrá algo que ver con el tamaño?)
Gracias por todo.
Hasta ahora he usado este fichero y lo he transformado en lista de propiedades y no me ha dado problemas. Pero cuando he metido la base de datos completa en ese fichero de texto (ya no la he podido meter con el notepad y he tenido que usar el wordpad) me ha dado en la aplicación en director que no puede leer el fichero.
Me he dado cuenta que si el fichero es de 2kb máximo no tengo problemas pero mi base de datos ocupa alrededor de 64 kb y entonces han aparecido los problemas.
Te mando un resumen del trace cuando no tengo problemas y cuando me sale el mensaje de error.
Sin problemas
== Script: (member 12 of castLib 1) Handler: loadData
--> text = openAndReadText()
== Script: (member 10 of castLib 1) Handler: openAndReadText
--> fileObj = new(xtra "FileIO")
== fileObj = <Xtra child "fileio" 1 4fbe74>
--> filename = "database.txt"
== fileName = "database.txt"
--> if filename = "" then return ""
--> openFile(fileObj,filename,1)
--> if status(fileObj) <> 0 then
--> text = readFile(fileObj)
== text = "[[#codigo: "1", #apellidos: "aaaaaaaaaaaa", #nombre: "eeeeeee", #fnaci: "02-01-992", #lnaci: "xxxxxx", #ffall: "", #lfall: "", #fmatr: "", #lmatr: "", #codpad: "2", #locpad: "", #codmad: "3", #locmad: ""......... (hasta 2kb)............................ ]]"
--> closeFile(fileObj)
--> return text
con problemas
== Script: (member 12 of castLib 1) Handler: loadData
--> text = openAndReadText()
== Script: (member 10 of castLib 1) Handler: openAndReadText
--> fileObj = new(xtra "FileIO")
== fileObj = <Xtra child "fileio" 1 4e96a8>
--> filename = "database.txt"
== fileName = "database.txt"
--> if filename = "" then return ""
--> openFile(fileObj,filename,1)
--> if status(fileObj) <> 0 then
--> text = readFile(fileObj)
== text = "[[#codigo: "1", #apellidos: "AAAAAAAA", #nombre: "BBBBBBB", #fnaci: "09.05.912", #lnaci: "XXXXXXXX", #ffall: "", #lfall: "", #fmatr: "27.12.930", #lmatr: "XXXXXXX", #codpad: "52", #locpad: "XXXXXXXX", #codmad: "53", #locmad: "MEÑACA".........(hasta 64 kb)........]]"
--> if text = "" then exit
--> list = value(text)
== list = <Void>
--> if listP(list) then
--> alert "Error reading database."
--> end
== Script: (member 1 of castLib 1)
No se si te servirá de referencia pero parece que no puede ni cerrar el fichero la segunda vez (¿tendrá algo que ver con el tamaño?)
Gracias por todo.
1 Respuesta
Respuesta de baronclo
1