Beruflich Dokumente
Kultur Dokumente
especiales en un cuadro de texto? tengo una aplicacin que estoy desarrollando en Visual C# .Net
y quiero poner un cuadro de texto (TextBox) para que el usuario de la aplicacin de facturacin slo
introduzca nmeros y no permitirle introducr letras cmo puedo hacer esto?
Puedes aadir el siguiente cdigo al evento KeyPress del TextBox:
private void txtCodigoFabricante_KeyPress(object sender,
KeyPressEventArgs e)
{
//Para obligar a que slo se introduzcan nmeros
if (Char.IsDigit(e.KeyChar))
{
e.Handled = false;
}
else
if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso
{
e.Handled = false;
}
else
{
//el resto de teclas pulsadas se desactivan
e.Handled = true;
}
}
Truco: Pasar entre TextBox con la tecla ENTER VB y CSharp Windows Forms
Algo mas sencillo que los otros trucos que he estado publicando.. este por lo menos podremos
simular el TABULADOR en nuestras aplicaciones Windows cosa que muchas veces no
encontrabamos la forma de pasar a la siguiente caja de texto o siguiente control con la tecla
ENTER.
Como en los anteriores este debe ser codificado en el Evento KeyPress del TextBox
1: private void TxtPruebaENTER_KeyPress(object sender, KeyPressEventArgs e)
2: {
3:
if (e.KeyChar == (char)(Keys.Enter))
4: {
5:
e.Handled = true;
6:
SendKeys.Send("{TAB}");
7: }
8: }
Buscando cadenas dentro de cadenas en C#
Pues hace tiempo que no escribo nada en el blog, sobre todo porque he estado muy ocupado en
otras cosas y por razones de la vida ya no programo mucho con C#, pero quiero compartir con
ustedes algunos trucos a la hora de buscar y comparar strings con C#.
Cuando digo cadenas, por supuesto que me refiero a cadenas de caracteres, esto de traducir la
programacin al espaol es un dolor de cabeza, por ejemplo, como traducimos array? vector o
arreglo? pero bueno, ese es otro tema, vayamos a lo que importa:
Veamos los mtodos de la clase String en C# para la bsqueda de cadenas:
1. IndexOf, Retorna el ndice de la primera ocurrencia de un String o uno o ms caracteres de una
instancia
2. LastIndexOf, Lo mismo que el anterior, solo que retorna la ltima ocurrencia
3. StartsWith, Como su nombre indica, retorna true o false dependiendo de si la cadena que se le
pasa empieza con una cadena de caracteres dada
4. EndsWith, Lo mismo que el anterior, pero verifica que la cadena buscada est al final.
5. Contains, parecido a IndexOf, solo que en vez de retornar la posicin, retorna true o false.
Ejemplos
Tomemos la siguiente cadena para los ejemplos:
string str = "A silly sentence used for silly purposes.";
1. Usando IndexOf() y LastIndexOf():
int first = str.IndexOf("silly"); //Primera ocurrencia de "silly"
}
return result;
}
4*- Implemente un mtodo Combinar, que dado un string s, devuelva todas las combinaciones
posibles que se pueden formar a partir de los caracteres de s. Este mtodo es un poco ms
complicado, pero muy til y prctico. Para esto usaremos recursividad, para ir generando todas las
posibles combinaciones. (ej: entrada: hoy; salida: hoy, hyo, ohy, oyh, yho, yoh)
public void Combina(string s)
{
bool[] marcas = new bool[s.Length];
Combina(s, "", marcas);
}
void Combina(string original, string combinado, bool[] marcas)
{
if (original.Length == combinado.Length)
Console.WriteLine(combinado);
for (int i = 0; i < marcas.Length; i++)
{
if (!marcas[i])
{
marcas[i] = true;
Combina(original, combinado + original[i], marcas);
marcas[i] = false;
}
}
}
Si tienes alguna duda sobre los cdigos anteriores, o quieres agregar algo, en los comentarios.
Bueno, hasta aqu esta entrega de ejercicios resueltos. Espero que te sirva, y si quieres practicar,
guate por estos ejemplos y trata de implementar otros mtodos relacionados con string, como son:
1- Eliminar un carcter dado de una cadena.
public string Eliminar(string s, char c).
2- Ver si un string es palndromo no, o sea, se escribe igual al derecho que al revs.
public bool EsPalindromo(string s)
3- Ver cul es el letra que ms se repite en una cadena.
public char MasPopular(string s)
Es muy aconsejable que traten de hacer estos ejercicios solos, auxilindose de los ejemplos
anteriores. De todos modos pondr la respuesta de estos ejercicios en una prxima entrega la
semana que viene.
Recortar y quitar caracteres de cadenas en .NET Framework
Si va a analizar una frase en las palabras que la forman, el resultado pueden ser palabras con
espacios en blanco delante y detrs. En este caso, puede usar uno de los mtodos de recorte de la
clase System.String para quitar espacios u otros caracteres de una posicin especificada de la
cadena. En la tabla siguiente se describen los mtodos de recorte disponibles.
Nombre del
mtodo
Utilice
String.Trim
Quita del comienzo y del final de una cadena los espacios en blanco o los caracteres especific
caracteres.
String.TrimEnd
Quita los caracteres especificados de una matriz de caracteres del final de una cadena.
String.TrimStart
Quita los caracteres especificados de una matriz de caracteres del comienzo de una cadena.
String.Remove
Utilice
String.Format
String.Concat
String.Join
String.Insert
Compila una nueva cadena mediante la insercin de una cadena en el ndice especificado de
String.CopyTo
Copia los caracteres especificados de una cadena en la posicin especificada de una matriz
Formato
El mtodo String.Format se puede usar para crear cadenas con formato y concatenar cadenas
que representan varios objetos. Este mtodo convierte automticamente en cadena cualquier
objeto que se pase. Por ejemplo, si la aplicacin debe mostrar al usuario un valor Int32 y un
valor DateTime, es muy sencillo construir una cadena que represente estos valores con el
mtodo Format. Para obtener ms informacin sobre las convenciones de formato utilizadas con
este mtodo, vea la seccin Formato compuesto.
Cadenas de relleno en .NET Framework
Utilice uno de los siguientes mtodos String para crear una nueva cadena formada por una cadena
original que se rellena con caracteres iniciales o finales hasta alcanzar una longitud total
especificada. El carcter de relleno puede ser un espacio o un carcter especificado y, por lo tanto,
la cadena parece estar alineada a la derecha o a la izquierda.
Nombre del mtodo
Utilice
String.PadLeft
Rellena una cadena con caracteres iniciales hasta alcanzar la longitud total especificad
String.PadRight
Rellena una cadena con caracteres finales hasta alcanzar la longitud total especificada
Utilice
String.Compare
String.CompareOrdina
l
String.CompareTo
Compara el objeto de cadena actual con otra cadena. Devuelve un valor entero.
String.StartsWith
Determina si una cadena comienza con la cadena que se pasa. Devuelve un valor booleano
String.EndsWith
Determina si una cadena termina con la cadena que se pasa. Devuelve un valor booleano.
String.Equals
String.IndexOf
String.LastIndexOf
Comparar
El mtodo String.Compare proporciona una manera de comparar exhaustivamente el objeto de
cadena actual con otra cadena u objeto. En este mtodo se tiene en cuenta la referencia
cultural. Esta funcin se puede usar para comparar dos cadenas o subcadenas de dos
cadenas. Adems, se proporcionan sobrecargas para tener en cuenta o no las diferencias de
referencia cultural y de maysculas y minsculas. En la tabla siguiente se muestran los tres valores
enteros que este mtodo puede devolver.
Tipo de valor
Condition
Un entero negativo
Un entero positivo.
O bien
O bien
Importante
La finalidad principal del mtodo Compare es que se utilice para la ordenacin o clasificacin de cadenas. El mtodo
para comprobar la igualdad (es decir, para buscar explcitamente un valor devuelto que sea 0 sin tener en cuenta si un
mayor que otra). En su lugar, para determinar si dos cadenas son iguales, use el mtodo String.Equals(String, String,
Utilice
String.ToUpper
String.ToLower
Adems, se puede utilizar la propiedad de lectura y escritura Capacity para establecer la longitud
mxima del objeto. En el ejemplo siguiente se utiliza la propiedad Capacity para definir la longitud
mxima del objeto.
C#
MyStringBuilder.Capacity = 25;
Utilice
StringBuilder.Append
StringBuilder.AppendFormat
StringBuilder.Insert
StringBuilder.Remove
StringBuilder.Replace
Que es un DLL?
Un DLL o Dynamic Link Library (Biblioteca de Vinculo Dinamica en espaol) es un archivo que contiene
funciones o clases u otros recursos que pueden ser utilizados por una aplilcacion externa al DLL. Como lo dice
su nombre, una aplicacion lo que hace es hacer un vinculo a la biblioteca y de esta forma puede hacer uso de
funciones, procedimientos o metodos que se encuentren en esta biblioteca. Para darles un ejemplo, yo puedo
tener un DLL con funciones matematicas, y en vez de escribirlas otra vez en el codigo de mi aplicacion,
simplemente hago un vinculo al DLL que contiene las funciones matematicas y asi las puedo utilizar desde mi
aplicacion. La ventaja de esto es que se recicla codigo, y el codigo es mas ordenado tambien, sin embargo asi
tambien tiene desventajas.
Pasos para crear y usar la Dll
Paso 1: Creacin de la Dll
El primer paso que realizaremos ser crear un nuevo proyecto del tipo Class Library, que en este caso he
bautizado como KLSTools.
En l, crearemos una clase que contenga una operacin que sume diferentes valores que pasaremos como
referencias.
Creacin de la Dll
Contenido de la Dll
ClicparaverTextoPlano
C#:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace KLSTools
{
public class Operaciones
{
public int Sumar(int A, int B)
{
int valor = A + B;
return valor;
}
}
}
C#:
1.
2.
3.
4.
5.
6.
7.
8.
9.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//Referencio a mi DLL
using KLSTools;
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Instancio la clase de mi Dll
Operaciones miOperacion = new Operaciones();
MessageBox.Show(miOperacion.Sumar(1, 4).ToString());
}
}
}