Hola que tal... hace poco comence con gambas ... estube mirando la parte de "manipulacion de string" la parte de hexadecimal... y de seguro es uan boludez pero no logro comrenderlo ..
necesito pasar una cadena a hexadecimal.. segun lo que lei anterior mente seria
Hex(lalal) cosa que esta erronea ya que no sucede ..
se que se necesita una bucle y eso no ews problema ... si medan una manito se los agradeceria
saludos
Manejar String
Objetivo: Re: Manejar String
primero convertilo a numerico
luego pasalo a hexadecimal
saludos
luego pasalo a hexadecimal
hex
Devuelve un string qu e es la conversión al hexadecimal de un valor
x=hex(y) ====> x = valor hexadecimal de y
Devuelve un string qu e es la conversión al hexadecimal de un valor
x=hex(y) ====> x = valor hexadecimal de y
saludos
Objetivo: Re: Manejar String
Hola, aprovechando este hilo, como puedo convertir a Date lo que hay en un campo de texto?
el formato escrito es 01/01/2010, el cual deberia pasarlo a Date y despues cambiarle el formato a yyyy/mm/dd para insertarlo en MySQL.
Lo de convertirlo lo tengo claro, pero lo que no consigo es meter el String "01/01/2010" dentro de una variable Date.
el campo de texto se llama "fecha_txt" y la variable a insertarlo "fecha as date"
el formato escrito es 01/01/2010, el cual deberia pasarlo a Date y despues cambiarle el formato a yyyy/mm/dd para insertarlo en MySQL.
Lo de convertirlo lo tengo claro, pero lo que no consigo es meter el String "01/01/2010" dentro de una variable Date.
el campo de texto se llama "fecha_txt" y la variable a insertarlo "fecha as date"
Objetivo: Re: Manejar String
Hola
Dispones de las funciones IsDate() y CDate() pero no me gusta porque traen bastantes problemas si no usas el separador barra y utilizan el formato de fecha anglosajón.
Así que yo me hice en su día una clase para estas pequeñas cosillas molestas y te lo pongo:
'función que recibe una fecha en formato MM/DD/YY y la convierte al formato español. El string de entrada acepta
'cualquier separador, pero la salida se hace con / para no tener problemas con funciones de fecha de gambas que solo'
'admiten ese separador.
Devuelve la fecha en formato DD/MM/YY si es posible. Si falta DD o MM o YY devuelve cadena vacía.
Tu respuesta por tanto es que utilices Cdate(expresión) pero ten en cuenta que requiere que los separadores sean / y que la fecha esté en formato MM/DD/YY o te dirá que no es fecha. Por eso la función CFecha devuelve un string con el delimitador / y con DD y MM cambiados. Si le envías una fecha en formato español te la devuelve en ingles. Si se las envías en formato ingles te la devuelve en español. Para Cdate la necesitas en ingles y con /.
Yo tengo una clase con estas y otras chorraditas. La inserto en mis proyectos y ya está.
Un saludo
como puedo convertir a Date lo que hay en un campo de texto?
Hola
Dispones de las funciones IsDate() y CDate() pero no me gusta porque traen bastantes problemas si no usas el separador barra y utilizan el formato de fecha anglosajón.
Así que yo me hice en su día una clase para estas pequeñas cosillas molestas y te lo pongo:
'función para comprobar si es fecha un string en formato dd/mm/yy
'contempla el caso de años bisiestos.
'devuelve true o false si es o no es fecha válida
PUBLIC FUNCTION EsFecha(f AS String) AS Boolean
DIM fe AS String[], del AS String, Mes AS Integer, Dia AS Integer, Anio AS Integer
DIM Dias AS Integer[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
DIM Valido AS Boolean
IF Len(f) <> 8 THEN
valido = FALSE
ELSE
del = IIf(IsDigit(Mid(f, 3, 1)), Mid(f, 2, 1), Mid(f, 3, 1))
fe = Split(f, del)
IF fe.count <> 3 THEN
valido = FALSE
ELSE
TRY dia = CInteger(fe[0])
TRY mes = CInteger(fe[1])
TRY anio = CInteger(fe[2])
IF mes = 2 THEN 'si es bisiesto
IF anio MOD 4 = 0 THEN
IF anio MOD 100 <> 0 THEN
IF anio MOD 400 = 0 THEN
Dias[1] = 29
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
valido = IIf(dia <= Dias[mes - 1], TRUE, FALSE)
valido = IIf(valido & (mes < 13), TRUE, FALSE)
valido = IIf(valido & (anio > 0), TRUE, FALSE)
ENDIF
FINALLY
RETURN valido
CATCH
valido = FALSE
END
'contempla el caso de años bisiestos.
'devuelve true o false si es o no es fecha válida
PUBLIC FUNCTION EsFecha(f AS String) AS Boolean
DIM fe AS String[], del AS String, Mes AS Integer, Dia AS Integer, Anio AS Integer
DIM Dias AS Integer[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
DIM Valido AS Boolean
IF Len(f) <> 8 THEN
valido = FALSE
ELSE
del = IIf(IsDigit(Mid(f, 3, 1)), Mid(f, 2, 1), Mid(f, 3, 1))
fe = Split(f, del)
IF fe.count <> 3 THEN
valido = FALSE
ELSE
TRY dia = CInteger(fe[0])
TRY mes = CInteger(fe[1])
TRY anio = CInteger(fe[2])
IF mes = 2 THEN 'si es bisiesto
IF anio MOD 4 = 0 THEN
IF anio MOD 100 <> 0 THEN
IF anio MOD 400 = 0 THEN
Dias[1] = 29
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
valido = IIf(dia <= Dias[mes - 1], TRUE, FALSE)
valido = IIf(valido & (mes < 13), TRUE, FALSE)
valido = IIf(valido & (anio > 0), TRUE, FALSE)
ENDIF
FINALLY
RETURN valido
CATCH
valido = FALSE
END
'función que recibe una fecha en formato MM/DD/YY y la convierte al formato español. El string de entrada acepta
'cualquier separador, pero la salida se hace con / para no tener problemas con funciones de fecha de gambas que solo'
'admiten ese separador.
Devuelve la fecha en formato DD/MM/YY si es posible. Si falta DD o MM o YY devuelve cadena vacía.
'función que recibe un string en formato XX/XX/YY
'El parámetro opcional Esp indica si la fecha está en formato español. Si Esp o nada se asume ESP=true
'Si Esp se asume DD/MM/YY. Si ESP es false se asume MM/DD/YY
'Devuelve la fecha en formato YY-MM-DDDD
'sirve para comparaciones sql de fechas
'admite cualquier separador de campos
PUBLIC FUNCTION FechaBd(F AS String, OPTIONAL Esp AS Boolean) AS String
DIM fe AS String[], del AS String, Mes AS String, Dia AS String, Anio AS String
del = IIf(IsDigit(Mid(f, 3, 1)), Mid(f, 2, 1), Mid(f, 3, 1))
fe = Split(f, del)
IF Esp THEN
dia = fe[0]
mes = fe[1]
ELSE
dia = fe[1]
mes = fe[0]
ENDIF
anio = IIf(Len(fe[2]) = 2, "20" & fe[2], fe[2])
RETURN anio & "-" & mes & "-" & dia
END
'El parámetro opcional Esp indica si la fecha está en formato español. Si Esp o nada se asume ESP=true
'Si Esp se asume DD/MM/YY. Si ESP es false se asume MM/DD/YY
'Devuelve la fecha en formato YY-MM-DDDD
'sirve para comparaciones sql de fechas
'admite cualquier separador de campos
PUBLIC FUNCTION FechaBd(F AS String, OPTIONAL Esp AS Boolean) AS String
DIM fe AS String[], del AS String, Mes AS String, Dia AS String, Anio AS String
del = IIf(IsDigit(Mid(f, 3, 1)), Mid(f, 2, 1), Mid(f, 3, 1))
fe = Split(f, del)
IF Esp THEN
dia = fe[0]
mes = fe[1]
ELSE
dia = fe[1]
mes = fe[0]
ENDIF
anio = IIf(Len(fe[2]) = 2, "20" & fe[2], fe[2])
RETURN anio & "-" & mes & "-" & dia
END
Tu respuesta por tanto es que utilices Cdate(expresión) pero ten en cuenta que requiere que los separadores sean / y que la fecha esté en formato MM/DD/YY o te dirá que no es fecha. Por eso la función CFecha devuelve un string con el delimitador / y con DD y MM cambiados. Si le envías una fecha en formato español te la devuelve en ingles. Si se las envías en formato ingles te la devuelve en español. Para Cdate la necesitas en ingles y con /.
Yo tengo una clase con estas y otras chorraditas. La inserto en mis proyectos y ya está.
Un saludo
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.1889s (PHP: 26% SQL: 74%)
Consultas SQL: 22 - Debug off - GZIP Activado