gambafeliz   18-05-2021, 15:48
#1
Yo tengo una manera particular para detectar una fecha de SQLite donde se almacena en tipo TEXT y siguiendo este formato (aunque debo de confesar que para mi no es ni definitiva ni efectiva ni eficiente, por eso os propongo posibles código que den más calidad al mio):

YYYY-MM-DD
YYYY-MM-DD HH:MM

Pero cuando obtenemos un Result de este campo, procedente de SQLite que técnica se os ocurre para detectarla y diferenciarla por ejemplo de una cadena de texto donde esta tenga dos guiones por ejemplo o una forma parecida pero que no sea una fecha.

¿Me ayudan con códigos posibles?

Gracias.

===Solución ============================

Esta es mi propuesta que acabo de encontrar en la documentación de Gambas, creo que es bastante eficiente y solida, por favor, si creen que no pues indicadmelo

Código:
Dim sN As String = "[0123456789]"
   Dim sC1 As String = "2021-05-18"
   Dim sCaso1 As String = sN & sN & sN & sN & "-" & sN & sN & "-" & sN & sN
   Dim sC2 As String = "2021-05-18 10:30"
   Dim sCaso2 As String = sCaso1 & " " & sN & sN & ":" & sN & sN
  

   If sC1 Like sCaso1 Or sC2 Like sCaso2 Then
      Message.Info("Si")
   Endif
Última modificación: 19-05-2021, 09:59 por gambafeliz.
vuott   19-05-2021, 00:09
#2
La parte
  Like "****-**-**"
también funciona así:
   Like "*-*-*"
Por lo tanto, tu solución no garantiza que aquella cadena sea una "fecha" (es decir una cadena compuesta por 4 números, un guión, 2 números, un guión y otros dos números).
Última modificación: 19-05-2021, 00:10 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
gambafeliz   19-05-2021, 07:14
#3
Gracias guapo, pero ya que me tiras una piedra, ¿por qué no me das la solución? Tongue

En serio mil gracias, yo lo había dado por cerrado, Gambas es muy bueno, en serio, es un lenguaje de programación que nos deja dar rienda suelta a todo lo que nos de en gana, pero tengo tanto que aprender de el.

En fin, menos mal que existen personas como ustedes.

Nota: Para los futboleros la perdida de Maradona fue triste, pero ayer para mi Franco Battiato lo fue por igual. Descanse en paz.
-Centro di gravità permanente-
vuott   19-05-2021, 16:04
#4
(19-05-2021, 07:14)gambafeliz escribió: Nota: Para los futboleros la perdida de Maradona fue triste, pero ayer para mi Franco Battiato lo fue por igual. Descanse en paz.
-Centro di gravità permanente-

Por lo que me attañe, de Maradona no me interesa nada de nada, de la muerte del gran siciliano Battiato, sì.



Que siempre viva el Hijo de la bellisima Diosa del Mediterraneo, Trinacria.
[Imagen: bandiera-trinacria.jpg]
Última modificación: 19-05-2021, 16:14 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
vuott   19-05-2021, 19:50
#5
(19-05-2021, 07:14)gambafeliz escribió: no me das la solución

Una posibilidad podría ser:
Código:
Public Sub Main()

  Dim s As String = "2021-05-19"
  Dim ss As String[]
  
  ss = Scan(s, "*-*-*")

' En primer lugar, comprueba que el primer elemento corresponde al año actual y, a continuación,
' comprueba que la combinación de las partes numerales pueda ser una fecha.
  If (ss[0] <> CStr(Year(Now))) Or (Not IsDate(ss[2] &/ ss[1] &/ ss[0])) Then Error.Raise("No es una fecha !")

End
Por supuesto están otras opciones.
Última modificación: 19-05-2021, 20:05 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
gambafeliz   19-05-2021, 19:56
#6
Lo dicho Smile

¡¡ Tengo tanto que aprender de Gambas !!

Me encanta tu código. Más Magia.

Tongue

Nota: Muchas gracias vuott me has dejado como en el cine, sentado apretando la espalda al respalda del asiento de un Cine de verano.
vuott   19-05-2021, 20:18
#7
" Più diventa tutto inutile
  e più credi che sia vero.
  E il giorno della fine

  non ti servirà l'inglese."

(Franco Battiato, "Il re del mondo", 1994)

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.