Re: ¿Como Abro Y Guardo Un Fichero Con La Clase Dialog ?
No se si llegare tarde, pero en mi blog publique una forma de guardar datos, de distinto tamaño. Lo dividia en secciones, y segun era la forma de guardarlo tambien tenia que leerlo de la misma manera.
http://jsbsan.wordpress.com/2009/03...tros-programas/
La estructura del archivo de datos que vamos a crear es la siguiente:
************GRAFICO DE TARTA*************
(titulo)
*************Textos de Leyenda ************
(texto leyenda nº 1)
..
..
..
..
..
..
..
..
(texto leyenda nº 10)
************* Valores ************
(suma total valores)
(relacion entre valor nº 1 / suma)
..
..
..
..
..
..
..
..
(relacion entre valor nº 10/suma)
************* Colores ************
(color nº 1 (es un entero,(int)))
..
..
..
..
..
..
..
(color nº 10)
************* Fin ************
Paso a exponer el codigo de Guardar/Abrir
Guardar Datos:
PUBLIC SUB guardar_Click()
‘tengo que guardar
‘el titulo de diagrama
‘los textos y valores
DIM lineas AS String
DIM destino AS String
DIM numArchivo AS Integer
DIM a AS Integer
Dialog.Title = “Escriba un nombre de archivo para guardar los datos”
Dialog.Filter = ["*.diagrama", "Datos de diagrama"]
IF NOT Dialog.SaveFile() THEN
IF Right$(Dialog.Path, 9) <> “.diagrama” THEN
destino = Dialog.Path & “.diagrama”
ELSE
destino = Dialog.Path
END IF
FMain.title = “Grafico Tarta: ” & Dialog.Path
lineas = “************GRAFICO DE TARTA*************” & “\n”
LINEas &= TextBox1.Text & “\n”
‘escribo texto de leyenda
lineas &= “*************Textos de Leyenda ************” & “\n”
FOR a = 1 TO 10
LINEas &= CStr(vg.textoleyenda[a]) & “\n”
NEXT
‘escribo valores
lineas &= “************* Valores ************” & “\n”
‘suma total
LINEas &= CStr(vg.suma) & “\n”
FOR a = 1 TO 10
LINEas &= CStr(vg.valores[a - 1]) & “\n”
NEXT
‘escribo colores
lineas &= “************* Colores ************” & “\n”
FOR a = 1 TO 10
lineas &= CStr(vg.colorlabel[a]) & “\n”
NEXT
‘final del fichero
lineas &= “************* Fin ************” & “\n”
File.Save(destino, lineas)
END IF
END
Abrir Datos:
PUBLIC SUB abrir_Click()
DIM c AS String
DIM arr_cadenas AS String[]
DIM a AS Integer
DIM b AS Integer
Dialog.Title = “Seleccione un archivo”
Dialog.Filter = ["*.diagrama", "Datos de diagrama"]
IF NOT Dialog.OpenFile() THEN
arr_cadenas = Split(File.LOAD(Dialog.Path), “\n”)
FMain.title = “Grafico Tarta: ” & Dialog.Path
‘ lineas = “************GRAFICO DE TARTA*************”
TextBox1.Text = arr_cadenas[1]
b = 0
FOR a = 2 TO 100
IF arr_cadenas[a] = “************* Fin ************” THEN GOTO finLectura
IF arr_cadenas[a] = “*************Textos de Leyenda ************” THEN
a = a + 1
WHILE Mid$(arr_cadenas[a], 1, 3) <> “***”
b = b + 1
vg.textoleyenda[b] = arr_cadenas[a]
a = a + 1
WEND
b = 0
END IF
‘lectura de valores
IF arr_cadenas[a] = “************* Valores ************” THEN
a = a + 1
vg.suma = CFloat(arr_cadenas[a])
a = a + 1
WHILE Mid$(arr_cadenas[a], 1, 3) <> “***”
b = b + 1
vg.valores[b - 1] = CFloat(arr_cadenas[a])
a = a + 1
WEND
b = 0
END IF
‘ Lectura de colores
IF arr_cadenas[a] = “************* Colores ************” THEN
a = a + 1
WHILE Mid$(arr_cadenas[a], 1, 3) <> “***”
b = b + 1
vg.colorlabel[b] = CFloat(arr_cadenas[a])
a = a + 1
WEND
a = a – 1
END IF
NEXT
finlectura:
END