border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 28-12-2006, 12:31:45
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 32
netman Valoración +2
Predeterminado 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
Responder Con Cita
  #2 (permalink)  
Antiguo 28-12-2006, 14:15:44
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.172
acalanto ha deshabilitado la reputación
Predeterminado

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
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 29-12-2006, 09:43:12
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 429
MiguelS Valoración +2
Predeterminado

Código:
Format("5", "000")
no es suficiente?
Responder Con Cita
  #4 (permalink)  
Antiguo 29-12-2006, 11:45:58
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.172
acalanto ha deshabilitado la reputación
Predeterminado

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.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 29-12-2006, 17:59:37
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 32
netman Valoración +2
Predeterminado

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
Responder Con Cita
  #6 (permalink)  
Antiguo 29-12-2006, 18:34:17
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.136
J.M.Movilla Valoración +2
Predeterminado

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...
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #7 (permalink)  
Antiguo 29-12-2006, 21:11:56
Un Nuevo Amigo
 
Registrado: ene 2006
Ubicación: Olesa de Montserrat / Barcelona
Posts: 28
Jasall Valoración +2
Predeterminado

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
Responder Con Cita
  #8 (permalink)  
Antiguo 30-12-2006, 09:35:40
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.136
J.M.Movilla Valoración +2
Predeterminado

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...
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #9 (permalink)  
Antiguo 30-12-2006, 14:18:47
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.281
imported_chiaravel Valoración +2
Predeterminado

Otra podia haber sido

Código:
Resultado = mid$("00000",1,6-len(trim$(variable))) & trim$(variable)
Saludos
Responder Con Cita
  #10 (permalink)  
Antiguo 30-12-2006, 19:30:24
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 32
netman Valoración +2
Predeterminado

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
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
introducir ceros a la izquierda en un campo tavire Crystal Reports 2 20-05-2008 00:55:16
¿Cómo se rellena un DBCombo? saroaes23 Visual Basic 6.00 2 09-10-2007 14:05:48
Armar numero con decimales de derecha a izquierda guillermogc Visual Basic 6.00 3 17-05-2007 00:07:52
Escribir de derecha a Izquierda en un TextBox El_Principiante Visual Basic 6.00 4 02-05-2007 17:03:07
Insertar EL PUNTO al contar 2 numeros Derecha a Izquierda? mexican Visual Basic 6.00 20 29-10-2005 19:13:33


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

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right