| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | | 
28-12-2006, 12:31:45
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | Funcion que rellena a 0 por la izquierda Hola a todos,
Creo que si existe, pero no recuerdo como se llamaba, alguien sabe que función de Visual basic rellena a 0 una cadena por la izquierda.
Uso Visual Basic 6.
Gracias,
Juanma | 
28-12-2006, 14:15:44
| | Moderador | | Registrado: dic 2002 Ubicación: Madrid Posts: 4.172
| | Tal y como parece que haces la pregunta, te diré que no, que no existe; pero te la puedes fabricar tu mismo Código: Public Function Justifica_izq_Cadena(cad as string, long as integer, optional char as string = "0") as string
dim clen as integer
dim temp as string
on local error resume next
'Tomamos la cadena enviada en el parámetro
'eliminando los caracteres vacios izq-dch
temp = trim(cad)
clen = len(temp)
'Analizamos si la longitud justificada es menos
'que la propia cadena enviada en parámetro.
if clen < long
temp = string((long-clen),char)+temp
end if
Justifica_izq_Cadena = temp
end function
Espero que te resulte útil | 
29-12-2006, 09:43:12
| | Gran Participación en el Foro | | Registrado: oct 2003 Posts: 429
| | Código: Format("5", "000") no es suficiente? | 
29-12-2006, 11:45:58
| | Moderador | | Registrado: dic 2002 Ubicación: Madrid Posts: 4.172
| | Pues no Miguel, no es suficiente en este caso. Lo que tu dices funcionará siempre que el contenido de la cadena sea numérico, pero en el caso de rellenar con '0' por la izquierda cualquier cadena (Por ejemplo un documento de identidad), lo siento pero no es suficiente.
Haz la prueba y verás como llevo razón. | 
29-12-2006, 17:59:37
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | Muchisimas Gracias,
Al final lo que he hecho es pasarlo por una SQL haciendo un select LPAD(5,3,'0') from Dual y utilizo el resultado.
Pero muchas gracias por las soluciones.
Un saludo,
Juanma | 
29-12-2006, 18:34:17
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.136
| | Pues qué bueno, amigo Juanma...
Lo que queda, creo yo, en el aire es de dónde has sacado esa función LPAD(5,3,'0')... Porque tal como expresas en tu mensaje da la impresión de que se trata de una función propia de Visual o de SQL... pero que yo sepa... ni de uno ni de otro... Creo que olvidas precisamente lo fundamental, que es LA FUNCIÓN LPAD..., que curiosamente viene a recordarme la forma de rellenar que se usaba en Clipper... | 
29-12-2006, 21:11:56
| | Un Nuevo Amigo | | Registrado: ene 2006 Ubicación: Olesa de Montserrat / Barcelona Posts: 28
| | La funcion LPAD(cadena,N,cadena1) es de MySQL y sirve para añadir a la cadena1 a la izquierda de cadena las veces que sea necesario hasta que la cadena total tenga N caracteres. el ejemplo anterior tendria un resultado 005.
En clipper la funcion era ? Replicate("0",3)
Saludos
__________________
Saludos
| 
30-12-2006, 09:35:40
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.136
| | Bueno, está claro que no se trata de una función de Visual, que es el foro en el que nos estamos moviendo... Y lo de Clipper vamos a dejarlo estar, porque Replicate, REPITE un carácter tantas veces; pero no RELLENA a la izquierda, para lo que se usa una función de nombre muy parecido a LPad (PadL) y que se traduce como (Trim(cVar),nLen,cChar) para rellenar por la izquierda la variable cVar con nLen caracteres cChar...
Y por eso yo decía que LPad ME RECORDABA a la función de Clipper... | 
30-12-2006, 14:18:47
|  | Administrator | | Registrado: dic 2002 Ubicación: Buenos Aires - Argentina Posts: 2.281
| | Otra podia haber sido Código: Resultado = mid$("00000",1,6-len(trim$(variable))) & trim$(variable) Saludos | 
30-12-2006, 19:30:24
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | Hola JM,
La expresión LPAD la uso de una base de datos de oracle a la que conecto la aplicación mediante lenguaje SQL y aqui puedes usar tanto LPAD como RPAD.
Espero haber contestado a tu pregunta.
Gracias,
Juanma | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 23:29:14.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |