Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: oJosLoCos en 4 Diciembre 2009, 15:35 PM

Título: Reemplazar Comas por Puntos en visual basic
Publicado por: oJosLoCos en 4 Diciembre 2009, 15:35 PM
Veran, tengo un proyecto pendiente . Es un programa que resuelve equaciones de segundo grado en adelante.

El problema está que visual basic reconoce el punto "." como indicador de que es un numero decimal
8.9

Pero si opera con ellos , lo transforma en ","

Quiero decir que si tengo 2 textbox y tienen que sumarse sus valores siendo los valores 3 + 3.4

Al darle al comand button , el resultado que aparecera en unnuevo comand box sera :
6,4

Sustituye el punto por la coma. De esa forma si deseo seguir operando para continuar con la operación matematica , visual basic reconoce el 6,4 como 64 y no da el resultado correcto.

He pensar en reemplazar el valor , por un . cada vez que salga , pero no se como.

Sabrian decirme alguna solucion?
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: isseu en 4 Diciembre 2009, 15:49 PM
antes de resolver la ecuacion cambia , por .
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: oJosLoCos en 4 Diciembre 2009, 17:04 PM
Si bueno.. eso es evidente ya lo dije yo mismo , pero COMO??
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: Novlucker en 4 Diciembre 2009, 17:11 PM
Replace
:http://msdn.microsoft.com/en-us/library/bt3szac5%28VS.80%29.aspx

Saludos
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: ssccaann43 © en 4 Diciembre 2009, 17:16 PM
Replace(TuValor, ",", ".")
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: oJosLoCos en 4 Diciembre 2009, 17:16 PM
No acavo de entender exactamente como funciona esa funcion. xD Algun ejemplo?

Gracias por todo.
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: ssccaann43 © en 4 Diciembre 2009, 17:20 PM
Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim valor As Currency
valor = "1750,58"
MsgBox Replace(valor, ",", ".")
End Sub
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: oJosLoCos en 4 Diciembre 2009, 17:35 PM
mm vale, pero para poder canviarlo en TODOS los textbox que tengo ??

Puedo hacer una Public Function y especificar que sea donde sea que aparezca una , se transforme a . ??
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: xkiz ™ en 4 Diciembre 2009, 18:33 PM
si., pero la verdad la funcion replace es tan corta y sensilla que casi es al cuete crear una funcion aparte, con solo Text1.text = Replace(Text1.text, ",", ".") es suficiente, creo por ahi me equivoco...
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: ssccaann43 © en 4 Diciembre 2009, 19:34 PM
Mira lo mejor que puedes hacer es declarar variables como currency o double, y alli en esa variable guardas el valor del número que deseas usarlo para reemplazar la coma por el punto, luego dicho resultado lo asignas al text que corresponda!

De verdad ya te dimos la solución, no es posible que no sepas como hacerlo!
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: oJosLoCos en 4 Diciembre 2009, 20:14 PM
No es tan sencillo.... almenos yo no lo veo así.

Los resultados de la formula de la equacion de segundo grado van saliendo , ya que es un proyecto visual. De nada me sirve declarar variable para remplazar 1 vez la coma por el punto , necesito saber como hacerlo siempre , `Para que este marcado en todo el programa.. , ya que sino , como explico en el primer post , el programa hace una operacion , que sale en un nuevo txtbox , i si ese numero va en decimal , lleva una , y la coma no la reconoce como separacion entre entero y decimal , por lo tanto no puede seguir operando correctamente.

Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: Hasseds en 4 Diciembre 2009, 20:25 PM



Private Sub Text1_Change()
  Text1 = Replace(Text1, ",", ".")
End Sub

Private Sub Text2_Change()
Text2 = Replace(Text2, ",", ".")
End Sub





Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: BlackZeroX en 4 Diciembre 2009, 21:37 PM
No se si funcione bien lo acabo de hace con el Block de Notas...

Corregido: Solo ingresa numeros con coma decimal el codigo te devuelve la suma con las comas decimales pertinentes.

Código (vb) [Seleccionar]


Private Sub Form_Load()
   Dim res  As String
   res = SumaFormatodecimal(3, "3,454.456,45", "3,454.456,45")
   Call ReplacePuntoPorcomaDescimal(res)
   Call MsgBox(res)
End Sub

Public Function SumaFormatodecimal(ParamArray Numeros()) As String
Dim Num             As Variant
Dim Aux             As String

   For Each Num In Numeros
       Aux = Num
       Call ReplaceComaDescimal(Aux)
       SumaFormatodecimal = Val(SumaFormatodecimal) + Val(Aux)
   Next
End Function

Public Sub ReplaceComaDescimal(ByRef ValStr As String)
   ValStr = Replace(ValStr, ",", "")
End Sub

Public Sub ReplacePuntoPorcomaDescimal(ByRef ValStr)
Dim spl()               As String
Dim LenAfter          as integer
   spl = Split(CStr(ValStr), ".")
   LenAfter = IIf(IniArray(spl), Len(spl(1)), 0)
   ValStr = FormatNumber(ValStr, LenAfter, vbTrue, vbTrue, vbTrue)
End Sub

Public Function IniArray(varArray() As String) As Boolean
On Error Resume Next
   If ((Not varArray) = -1) Then
       IniArray = False
   Else
       IniArray = True
   End If
End Function



Dulces Lunas!¡.
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: BlackZeroX en 4 Diciembre 2009, 21:50 PM
para los textbox haces un for each

mira esta pagina:

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/163-for-each-deshabilitar-frame.htm
Título: Re: Reemplazar Comas por Puntos en visual basic
Publicado por: oJosLoCos en 5 Diciembre 2009, 00:46 AM
Muchas gracias , tanto al ejemplo como al aporte , me ha servido , empezare a hacerlo..
Gracias