Programación General > Visual Basic para principiantes
text con numeros
Nebire:
--- Cita de: "Toph" --- :P mucho mas facil asi, una pregunta F_Tanori para utilizar otro tipo de separador como un punto o simplemente un espacio ¿se puede de la misma forma?
EDIT: :P me respondo a mi misma pense que era tan facil como cambiar ###.###.##. o poner espacios pero con punto definitivamente no funciona y con espacio da problema en numeros grandes
saludos.
--- Fin de la cita ---
Si, hay que tener cuidado, piensa que cada '#' representa una cifra, entonces una cifra sólo reconoce números y los signos de puntuación de números. Si los signos de puntuación provocan desbordamiento dará error, en el siguiente ejemplo la idea era colocar dentro del formato la parte: 'H:' precisamente por el error indicado como se ve se trata aparte.
Aunque parezca limitado en realidad no lo es (aunque superar ese límite resulta tedioso), ya que podemos encadenar varios formateos: (texto= formato(a) & formato (b) & ... formato(n))
--- Código: Visual Basic ---' por ejemplo introduce la cadena: 123456789 y saldrá formateada como: 'H: 123 456 789-V', notar como H: convenientemente se ha dejado previo (parte del formato, pero inicial)Private Sub Text2_Validate(Cancel As Boolean) Text2.Text = "H:" & Format$(Text2.Text, " ### ### ###-V")End Sub
Otro ejemplo para terminar... Aquí necesitamos que el usuario ingrese un valor de 7 cifras que luego nosotros formateamos, el formato tiene 12 cifras, sin embargo el usuario nunca podrá escribir más de 7
' previamente en diseño o en la carga del formulario establecemos el límite que deseamos, esto es:
Text4.MaxLength = 7
' antes de dar formato establecemos el nuevo largo (que ya sabemos el tamaño resultante) , luego volvemos a fijar la longitud del 'usuario'
' el resultado es que el usuario no puede ingresar más de 7 caracteres, pero nosotros si podemos mostrarle más...
--- Código: Visual Basic ---Private Sub Text4_Validate(Cancel As Boolean) Text4.MaxLength = 12 Text4.Text = Format$(Text4.Text, "0## #### ###") Text4.MaxLength = 7End Sub
Si al ejemplo anterior le cambios el 0 del formato por una X es decir el siguiente código: el formato nunca rellenará hasta 12 caracteres, con la X , sólo pondrá una X
La razón es que hay caracteres literales y caracteres comodín, el '0' es un carácter comodin como lo es '#', pero otros caracteres son comodín de si mismos...
Hay algunos caracteres significativos, por ejemplo format$(texto ">") convierte a mayúsculas el 'texto' y el '<' a minúsculas...
--- Código: Visual Basic ---Private Sub Text4_Validate(Cancel As Boolean) Text4.MaxLength = 12 Text4.Text = Format$(Text4.Text, "X## #### ###") Text4.MaxLength = 7End Sub
Nebire:
Decir también que hay formatos predefinidos para los tipos generícos de datos, los cuales se pueden invocar por sus nombres i pasar mediante una enumeración..
Un ejemplo que va pasando por diferentes formatos... tras exponer cada formato realiza una pausa de unos 3 segundos...
--- Código: Visual Basic --- Private Sub Text5_Validate(Cancel As Boolean) Dim t As Single ' formato moneda basado en la configuración regional del equipo Text5.Text = Format$(Text5.Text, "Currency") t = Timer Do DoEvents Loop While (Timer - t) < 3 ' este es equivalente al que solicitaba el usuarioal abrir el post Text5.Text = Format$(Text5.Text, "Standard") t = Timer Do DoEvents Loop While (Timer - t) < 3 ' con decimales... sin puntuación Text5.Text = Format$(Text5.Text, "Fixed") t = Timer Do DoEvents Loop While (Timer - t) < 3 ' notación científica Text5.Text = Format$(Text5.Text, "Scientific") t = Timer Do DoEvents Loop While (Timer - t) < 3 ' sin formato... Text5.Text = Format$(Text5.Text, "General Number") t = Timer Do DoEvents Loop While (Timer - t) < 3 ' si es cero devuelve false, en otro caso devuelve true Text5.Text = Format$(Text5.Text, "True") ' false, on, off End Sub
Hay más formatos predefinidos, sobretodo usando fechas... pero la idea creo que es ilustrativa...
master33:
Gracias por la ayuda y la rapidez por respoder la que use fue la de Neribe
--- Código: Visual Basic ---Private Sub Text4_Validate(Cancel As Boolean) Text4.MaxLength = 12 Text4.Text = Format$(Text4.Text, "0## #### ###") Text4.MaxLength = 7End Sub
nada mas que decir gracias
Toph:
--- Cita de: "Nebire" ---Si, hay que tener cuidado, piensa que cada '#' representa una cifra, entonces una cifra sólo reconoce números y los signos de puntuación de números. Si los signos de puntuación provocan desbordamiento dará error...
--- Fin de la cita ---
:think: OK
lo que es haber estudiado formalmente programación no como yo que a patadas tuve que aprender :P
Gracias por tu aporte Nebire :good:
F_Tanori:
^_^ pues que mas se puede agregar,
sino que... muy buena informacion :good:
Saludos
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa