Spanish Formularios y txt

casan79

Member
Hola buenas me gustaria que alguien me pusiera un ejemplo de un formulario (me valen 2 campos y un boton) y que al presionar ese boton se guardaran los campos en un txt.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola de nuevo

Siguiendo con el ejemplo que querias el otro dia ;) , te escribo un ejemplo.
Imaginate que quieres al arrancar la aplicacion saber si ya hay datos guardados en el fichero, y dependiendo de esto haras una cosa u otra, y tambien al pulsar en el boton vas a grabar el fichero.


B4X:
Sub Globals
  Dim List1 As List
  Dim label1 as As Label
  Dim label2 as As Label
  Dim BotonOk As Button

  Dim Dato1 as String
  Dim Dato2 as String
  Dim DatosOk as Boolean

.........
........
.........



Sub Activity_Create(FirstTime As Boolean)
List1.Initialize
List1.Add(0)
List1.Add(1)

LeerFichero

if DatosOk  then
   ' SI existen datos, representarlos o hacer lo que quieras 
else
   ' NO existen datos guardados, llamar a introducir datos 
end if

 ' tambien puedes hacer esto para verificar los datos
 if Dato1 = "" and Dato2 = "" then
    ' NO existen datos guardados, llamar a introducir datos 
 Else 
    ' SI existen datos, representarlos o hacer lo que quieras 
 end if

........
........
..........

Sub BotonOK_Click

  Dato1=label1.Text
  Dato2=label2.Text
  GrabarFichero

End Sub

   



Sub GrabarFichero()
     
   List1.Clear
   List1.Add(Dato1)
   List1.Add(Dato2)
 

   Try
        File.WriteList(File.DirDefaultExternal,"NombreDelFichero.txt", List1)
   Catch
        Log("Error al escribir fichero NombreDelFichero.txt")
   End Try
   
End Sub


Sub LeerFichero()

  If File.Exists(File.DirDefaultExternal, "NombreDelFichero.txt") Then
     List1 = File.ReadList(File.DirDefaultExternal, "NombreDelFichero.txt")
     Dato1 = List1.Get(0)
     Dato2 = List1.Get(1)
     DatosOk = True
  Else
    Dato1 = ""
    Dato2 = ""
    DatosOk = False
  End If
   
   
End Sub


Existen mil formas de hacer esto, te he puesto una facil, mirate el tutorial de ficheros y veras otras formas de escribir y leer, y asi tu adoptas la que quieras. Con esta al borrar la lista al grabar evitas que se graben datos a continuación, si no que sobreescribes los que hay.

Espero haberte ayudado

Saludos
 

casan79

Member
uhm tengo un pequewño problema, compilo sin errores pero al arrancar no me deja ver el formulario sin embargo desde el diseñador si ¿sabrias decirme porque?
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Se te habrá olvidado cargarlo, si por ejemplo le has llamado "Layout1" pon esto:

B4X:
Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("Layout1")
.........
.........
.......

Esta opción ya la tienes, solo le tienes que quitar el comentario y darle el nombre del formulario

Saludos
 

casan79

Member
Perdona mi tardanza en responderte y muchísimas gracias por ayudarme pero he tenido cosas personales que hacer y no he podido seguir con este proyecto. He puesto el Activity.LoadLayout("Layout1") y he llamado al formulario Layout1 pero al ejecutarlo veo de fondo el formulario pero me da un error y se para la ejecución, el error es: Program paused on line: 33 Activity.LoadLayout("layout1"), sabes a que es debido?. Gracias de antemano
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Si en la linea 33 tienes el Activity.LoadLayout("layout1") y es donde dices que te da el error, lo mas seguro es que en el designer el nombre que le has puesto es diferente. Mirate bien el nombre, a veces lo mas obvio es donde esta el error y no lo vemos por que miramos aprisa, igual le pusiste el nombre sin "t", o no le pusiste el 1, etc

Saludos
 
Top