|
Página 1 de 1
|
Autor |
Mensaje |
TrueneX
Usuario
Registrado: Noviembre 2009
Mensajes: 9
Edad: 30 Ubicación:
|
Manejar String
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
|
#1 Domingo, 01 Noviembre 2009, 21:32 |
|
|
nrcefe
Aprendiz
Registrado: Septiembre 2009
Mensajes: 88
Ubicación: Entre Rios, Argentina
|
Re: Manejar String
primero convertilo a numerico
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
saludos
|
#2 Domingo, 01 Noviembre 2009, 21:36 |
|
|
Cubel
Técnico Programador
Registrado: Enero 2010
Mensajes: 182
Edad: 35 Ubicación: Valencia - España
|
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"
=================== Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.
Albert Einstein
En el SEXO querer es poder, si ELLA quiere, TU puedes.
Cubel!
|
#3 Miercoles, 17 Febrero 2010, 13:22 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Manejar String
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
'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.
PUBLIC FUNCTION cfecha(f AS String) AS String
DIM fe AS String[], del AS String
IF Len(f) <> 8 THEN
f = ""
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
f = ""
ELSE
f = fe[1] & "/" & fe[0] & "/" & fe[2]
ENDIF
ENDIF
RETURN f
END
'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
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
|
#4 Viernes, 19 Febrero 2010, 05:19 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No 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
|
|
|
|
|