tincho 31-08-2023, 16:04
Hola crustaceos.
Para recorrer los controles de un formulario de forma recursiva les planteo este método que me viene dando buenos resultados.

Código:
'' Este método recibe un objeto como parámetro de entrada y devuelve ,por la
'' salida estándar, el tipo de objeto, el objeto padre y, si existen, los
'' simbolos Text, Value y Tag. Es un método recursivo puesto que si el objeto
'' tiene hijos se llama a si mismo y pasa el contenedor como parametro. Esta
'' pensado para recorrer controles de un formulario que inicialmente se pasa
'' como parametro, y luego recorrer hasta el último nivel de anidamiento en
'' el que exista un control.
'' *eng* This method takes an object as an input parameter and returns, via
'' standard output, the type of the object, the parent object, and, if they
'' exist, the symbols Text, Value, and Tag. It is a recursive method since if
'' the object has children it calls itself and passes the container as a
'' parameter. It is intended to loop through form controls, this form is
'' initially passed as a parameter, and then loop through to the last nesting
'' level in which a control exists.

Public Sub Looper(ob As Object)

  Dim ch As Object
  Dim sTag, sVal As String
  Dim cls As Class
  Dim aSymbols As New String[]
  Dim sMark As String

  Select Object.Class(ob).Parent.Name
    Case "Form", "Container", "UserContainer"
      For Each ch In ob.Children
        Looper(ch)
      Next
    Case "Control", "UserControl", "TextBox", "Label"
      sMark = ""
      cls = Classes[Object.Class(ob).Parent.Name]
      If cls.Symbols.Exist("Tag") Then
        If ob.Tag = "" Then
          aSymbols.Add("Symbol.Tag.Empty")
        Else
          aSymbols.Add("Symbol.Tag." & ob.Tag)
        Endif
      Else
        aSymbols.Add("Symbol.Tag.None")
      Endif

      If cls.Symbols.Exist("Text") Then
        If ob.Text = "" Then
          aSymbols.Add("Symbol.Text.Empty")
        Else
          aSymbols.Add("Symbol.Text." & ob.Text)
        Endif
      Else
        aSymbols.Add("Symbol.Text.None")
      Endif

      If cls.Symbols.Exist("Value") Then
        If ob.Value <> 0 Then
          aSymbols.Add("Symbol.Value." & CStr(ob.Value))
        Else
          aSymbols.Add("Symbol.Value.Empty")
        Endif
      Else
        aSymbols.Add("Symbol.Value.None")
      Endif
    Case Else
      sMark = "#"
  End Select

  Print sMark & Object.Class(ob).Parent.Name & ":" & Object.Class(ob).Name & ":" & aSymbols.Join(":")

End
alberto-moyano 29-08-2023, 19:23
Hola gente,

Necesito tomar una decisión y me gustaría leer la opinión de los más duchos en manejo de base de datos y manipulación de archivos, para analizar cuál camino tomar.

La cuestión es la siguiente: poseo una base de datos (es simple) ya tengo todo el Alta/Baja/Modificación (ABM) funcionando y no hay errores, tampoco con las consultas, ahora bien, los datos de una determinada consulta (cualquiera) deben ser convertidos a un archivo de texto (que en realidad es otra base de datos), la cuestión es que no sé que es más conveniente, si exportar desde SQLite directamente un archivo de texto (el resultado de la consulta) con el texto adicional inyectado (si es que esto se puede hacer, algo que desconozco) o, exportar un CSV solo con los datos (esto ya lo puedo hacer con éxito) y con una función inyectar el texto adicional al archivo CSV y darle el nuevo formato, en cualquiera de los 2 caminos voy a tener que estudiar el proceso y de ahí mi pedido de ayuda en el análisis de qué sería mejor implementar.

El archivo resultante es básicamente un archivo bibtex (que no es más que un archivo txt con extensión .bib), este es en realidad un archivo de base de datos para LaTeX, el mismo puede ser procesado con bibtex (escrito en C) o con BibLaTeX (escrito en Perl) este procesamiento genera un nuevo archivo con extensión .bbl que es el que utiliza el compilador de LaTeX para generar las diferentes salidas (PDF, ePub, html, etc.).

Como es el contenido de un archivo .bib (veamos el caso de un libro)

Código:
@Book{Metz2001, %clave identificadora
  hyphenation  = {spanish},
  author       = {Metz, Christian},
  date         = {2001},
  keywords     = {listar},
  location     = {Barcelona},
  publisher    = {Paidós},
  title        = {El significante imaginario},
  creationdate = {2023-08-04T08:08:02},
  owner        = {alberto},
}

La clave identificadora y todo el contenido entre llaves, es lo que existe en la base de datos y que viene como resultado del query.

Ustedes que camino tomarían.

Saludos
tincho 28-08-2023, 02:43
Hola a todos.
Hoy se me ocurrió hacer una tabla [1] con los programas que algunos de los que participamos en este foro hemos ido compartiendo estos años, hay muchísimos mas en la granja de gambas y en los repositorios particulares [2] y estoy seguro que olvido muchos mas como las clases [3] o los ejemplos con Extern de Vuott que tan útiles resultan.
Si alguien desea incluir mas programas en la lista no tiene mas que decirlo.
[1] No logre poner una table estilo HTML así que puse esta en modo texto.
[2] Por ejemplo julio compartió 266 en su repositorio github, así que catalogar esto requiere un trabajo como el de catalogar la granja.
[3] Hay muchas clases dando vueltas por aquí, yo mismo tengo unas cuantas lo que sucedes es que esta todo desordenado y olvido lo que hay en el disco con el tiempo (seguro que a ustedes les pasa lo mismo).
Páginas (557):    1 132 133 134 135 136 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 285
Último miembro: XLRG
Temas del foro: 1,720
Mensajes del foro: 8,934
Últimos temas
Archivos .ods
Foro: General
Último mensaje por: tincho, Hace 8 horas
Respuestas: 8 - Vistas: 96
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: tincho, Hace 8 horas
Respuestas: 6 - Vistas: 276
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: tincho, Hace 9 horas
Respuestas: 41 - Vistas: 32,342
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: guizans, 22-06-2025, 19:55
Respuestas: 3 - Vistas: 266
Crear una aplicación para...
Foro: Bases de Datos
Último mensaje por: Shell, 29-05-2025, 20:11
Respuestas: 11 - Vistas: 1,400
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.