Shell 18-09-2021, 13:36
Buenas!.

Tengo un archivo de texto que tiene tropecientas mil líneas con este formato:
Cita:02/29/16|901120|TheZone/files/_2016/Break (1986)(Martin Aberle)[aka Demolition] [not in tosec].adf

Fijaros en la fecha. Es MM/DD/YY ó M/D/Y.

Según tengo entendido Sqlite3 o SQL trabaja con el formato. Y/M/D
En principio usé la aplicación DB Browser for SQLITE e importe el archivo como CSV y le dije que el separador era "|"
Las fechas se encuentran desordenadas.

La estructura por defecto de la base de datos era:
field1 - campo de texto ( Donde va las fechas)
field2 - campo tipo entero ( Donde va el tamaño del archivo)
field3 - campo de texto ( Donde va el nombre del archivo ).

Buscando, encontré que si quiero mostrar solamente la columna de las fechas podía hacer esto:
Intenté hacer la consulta de esta forma para obtener solo las fechas de la base de datos.

Código:
select strftime(fecha,'%Y-%m-%d') from JuegosAmiga;

El resultado fue una lista nula.

Así que intenté primero cambiar del archivo de texto cada línea el formato de fecha.
De M/D/Y a Y/M/D.

Como me defiendo más con Gambas y no quería complicarme con Awk o Sed  lo hice de esta forma:
( La codificación del texto es en latin1, así que cambié cada línea a utf-8)

Código:
Public Sub Form_Open()

  Dim contenidotexto As String
  Dim contenidomodificado As String
  Dim acontenido As String[]

  contenidotexto = File.Load(User.Home &/ "Descargas/filelist.txt")
  acontenido = Split(contenidotexto, gb.NewLine, "", True)
  contenidomodificado = CambiarFechaDeLineas(acontenido)
  File.Save(User.Home &/ "Descargas/filelist3.txt", contenidomodificado)

End

Public Function CambiarFechaDeLineas(contenido As String[]) As String

  ' Modifica el comienzo de la línea, sustituyendo el formato de la fecha
 
  Dim linea As String
  Dim otralinea As String
  Dim cambiofecha As String
  Dim salida As String

  Dim datos As String[]
  Dim unafecha As Date

  For Each linea In contenido
    datos = Split(Conv(linea, "latin1", "utf-8"), "|")
    unafecha = CDate(datos[0])
    otralinea = Format(unafecha, "yy/mm/dd")
    cambiofecha = Replace(linea, datos[0], otralinea)
    salida &= cambiofecha & gb.NewLine
    datos.Clear
  Next

  Return salida

End

Y obtengo una salida, ejemplo de línea de esta forma.
Cita:02/29/16|901120|TheZone/files/_2016/Break (1986)(Martin Aberle)[aka Demolition] [not in tosec].adf
a
16/02/29|901120|TheZone/files/_2016/Break (1986)(Martin Aberle)[aka Demolition] [not in tosec].adf

Esta vez utilicé la consola de sqlite3. Y usé estas instrucciones. ( La cosa es aprender sql ).
Cita:sqlite> CREATE TABLE JuegosAmiga(
   ...> fecha INTEGER NOT NULL,
   ...> size INTEGER NOT NULL,
   ...> nombre TEXT NOT NULL
   ...> );
sqlite> .mode csv
sqlite> .separator |
sqlite> .import filelist3.txt JuegosAmiga
sqlite> .save mibase.sqlite3
sqlite> .exit

E intente volver a ejecutar la sentencia sql que os comenté al principio. La salida volvió a ser la misma. Nula en todos los registros.

[Imagen: ZP8o2BZ.png]

¿ Cuál es el problema de las fechas ?. He invertido la instrucción pero tampoco es la solución.
Otra es que salga como titulo de la cabecera de la columna, la función, que cosa más rara.

Os muestro el enlace que estoy siguiendo. Primero una en español que no me solucionó el problema. Que parece muy completa.

Función strftime para dar formatos a fechas y horas

La taba se crea las fechas como texto.

Y ahora la de inglés.

SQLite Strftime() Function

Espero que el problema no sea la conversión del archivo.

Saludos
Shordi 18-09-2021, 12:02
Aporto aquí ViewChooser, una pequeña extensión de Dirchooser. Dirchooser no expone los métodos Mode, que define el tipo de selección que se le puede hacer, ni Selection, que es un array de los items seleccionados del Treeview que contiene. Esta clase extiende Dirchooser para que estos métodos sean accesibles.

[Imagen: N9cIraG.png]

Espero que os sea útil.

Saludos
Archivos adjuntos
.gz
ViewChooser-0.0.1.tar.gz (Tamaño: 15.38 KB Descargas: 6)
Shell 16-09-2021, 14:42
Buenas!.

Buscando una aplicación que hace uso de una base de datos, encontré un error en como presentaba un formulario al comenzar la aplicación.
Se trata de que al iniciar la aplicación muestre un formulario con una imagen y luego se cierre el formulario dando paso a otro formulario.

Lo extraño fue. Que ese formulario de presentación al mostrar la imagen, el formulario se iba a la esquina superior izquierda y no se centraba.
Ese código estaba en el evento Open. Puede que del cambio de QT4 a QT5 haya influido. La hice en el 2016.

Os muestro un ejemplo parecido al del formulario.

Código:
Private cuentasegundos As Integer

Public Sub Form_Open()

  Randomize
    
  With Timer1
    .Delay = 1000
    .Start()
  End With
   
   'Código que se quiera añadir. Como es el del evento activate para probar efecto
   
End

Public Sub Timer1_Timer()

  If cuentasegundos = 2 Then
    Timer1.Stop
    Me.Close
  Else
    cuentasegundos += 1
  Endif

End

Public Sub Form_Activate()

  Dim ppicture As New Picture
  Dim nomimagenes As String[]
  Dim ruta As String
 
  'Sin la creación de un paquete de instalación, temporalmente uso el directorio de la aplicación para las imágenes
  ruta = Application.Path &/ "Imagenes/"   
  nomimagenes = Dir(ruta, "*.png")
 
  ppicture = Picture.Load(ruta & nomimagenes[Rand(nomimagenes.Max)])

  With PictureBox1
    .Picture = ppicture   
    .Expand = True
  End With

  With Me
    .Center()
    .Arrangement = Arrange.Fill
    .W = ppicture.W
    .H = ppicture.H
  End With

End

Como veis el Timer se dispara en el evento Load, en realidad antes se ejecuta el evento actviate y luego va al código del timer.
Podría hacer que el código de mostrar la imagen fuese en el load, pero entonces no estaría centrado el formulario.

Espero no repetirme, ya que puede parecer común.

Saludos
Archivos adjuntos
.gz
FormularioCentradoImagen-0.0.1.tar.gz (Tamaño: 57.59 KB Descargas: 1)
Páginas (566):    1 385 386 387 388 389 566   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 295
Último miembro: ncofre98
Temas del foro: 1,748
Mensajes del foro: 9,072
Últimos temas
Problemas con las interru...
Foro: General
Último mensaje por: guizans, 14-12-2025, 18:40
Respuestas: 5 - Vistas: 239
Scrolling un ScrollArea
Foro: Controles/Librerías/Componentes
Último mensaje por: Shordi, 12-12-2025, 07:24
Respuestas: 5 - Vistas: 249
Ordenar en un TableView
Foro: General
Último mensaje por: guizans, 08-12-2025, 23:06
Respuestas: 9 - Vistas: 944
Resultados dispares según...
Foro: Bases de Datos
Último mensaje por: guizans, 04-12-2025, 22:49
Respuestas: 6 - Vistas: 399
Mover un Result a una pos...
Foro: Bases de Datos
Último mensaje por: guizans, 30-11-2025, 19:25
Respuestas: 2 - Vistas: 224
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.