Visual Basic - Función en VB

Life is soft - evento anual de software empresarial
 
Vista:

Función en VB

Publicado por Rony J. (2 intervenciones) el 10/11/2004 01:26:43
Hola a tados!
Mi problema es el siguiente, necesito contar cuantos caracteres decimales posee una cadena determinada, para luego, segun los que deba tener, agregarle los que le falten.Por ejemplo si el valor de la cadena es 4568.25 (2 caracteres decimales) y la misma debe tener 4 decimales debo concatenarle dos ceros(00) para completarselos, todo esto ya lo he hecho, solo que para saber cuantos decimales tiene la cadena he tenido que realizar dos ciclos For, uno q me diga en que posicion está el " . " y otro para a partir de esa posicion contar cuantos decimales tiene..Como se daran cuenta esto puede no ser muy eficiente,.. Si conoceis alguna funcion que me retorne la cantidad de decimales que hay en una cadena determinada me sacarian de este problemilla y se los agradeceria mucho!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Función en VB

Publicado por Dulce Esmeralda (23 intervenciones) el 10/11/2004 05:34:05
Hola, yo tengo algo parecido, no se si te funcione
Si quieres checa este codigo, espero que te dirva en algo.

Private Sub Form_Load()
Set rst2 = New ADODB.Recordset
rst2.CursorLocation = adUseClient
rst2.Open "Select EmpresaID,Nombre from Empresas Order by Nombre", cnn, adOpenDynamic, adLockOptimistic

While Not rst2.EOF
List1.AddItem rst2!EmpresaID & ".- " & rst2!Nombre
rst2.MoveNext
Wend
End Sub

Private Sub cmdAceptar_Click()
seleccion = List1.Text
medida = Len(seleccion)
caracter = ""
For x = 1 To medida
caracter = Mid(seleccion, x, 1)
If caracter = "-" Then
Exit For
End If
Next

izquierda = Left(seleccion, x - 2)
medida = Len(izquierda) + 4
derecha = Mid(seleccion, medida)
Unload Me
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

funcioncilla!!

Publicado por Hely (126 intervenciones) el 10/11/2004 06:20:21
Public Function decimales(nro, forzar) As String
On Error Resume Next
'primero se averigua la posicion de la coma
PosComa = InStr(nro, ",")
largoNro = Len(nro)

'si no hay coma le ponemos los ceros pedidos en forzar
If PosComa <= 0 Then
For i = 0 To forzar
Ceros = Ceros & "0"
Next
decimales = nro & Ceros
Exit Function
End If

'si hay coma , se cuentan los decimales y se ponen los ceros restantes
DecimalesEnNro = largoNro - PosComa
For i = DecimalesEnNro To forzar - 1
Ceros = Ceros & "0"
Next
decimales = nro & Ceros

'podria terminar la funcion quitando ceros si son mayor que forza
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mucho Mejor!!

Publicado por Rony J. (2 intervenciones) el 10/11/2004 16:24:43
Muchas garcias! he probado el InStr y de esta manera he logrado hacer más eficiente mi fucnción, Gracias a ambas! Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Mucho Mejor!!

Publicado por kdlc (226 intervenciones) el 13/11/2004 10:44:21
No seria mas facil esto?
? formatnumber(4568.25, 4, vbfalse, vbfalse, vbFalse )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar