Foros del Web » Programación para mayores de 30 ;) » .NET »

Como mostrar los ultimos numeros en un gridview

Estas en el tema de Como mostrar los ultimos numeros en un gridview en el foro de .NET en Foros del Web. Hola tengo un gridview con varios campos, pero en una columna me obtiene lo siguiente: C140K42--LP91 C140K42--P15 C140K42---P150 C140K42-K13 Lo que quiero es obtener el ...
  #1 (permalink)  
Antiguo 07/05/2013, 11:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Como mostrar los ultimos numeros en un gridview

Hola tengo un gridview con varios campos, pero en una columna me obtiene lo siguiente:

C140K42--LP91
C140K42--P15
C140K42---P150
C140K42-K13

Lo que quiero es obtener el ultimo dato numerico de la cadena, es decir, quedaria asi:
91
15
150
13

Pero nose si haya alguna forma de hacer esto, puesto que aveces la longitud de los ultimos numeros puede ser de 3 o de 2, ademas el campo es tipo strging el cual obtengo de la siguiente manera:
Código C#:
Ver original
  1. klist.Pulgadas = ir.GetString("Pulgadas_Rollos");

Lo que si es seguro es que siempre abra guines y letras antes de el numero.
Saben si de alguna manera es posible obtener esto?
  #2 (permalink)  
Antiguo 07/05/2013, 12:50
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Como mostrar los ultimos numeros en un gridview

Hola que tal, bueno un modo bonito o facil no

En este caso tendras que hacer una fucion que se encarge de obtener dichos valores.

Puedes hacer lo siguiente, es una idea

En una variable obtienes la longitud de la cadena.
Con un ciclo for lees los valores desde la longitud hasta 0.

Siempre que el valor que lees es número lo asignas a una variable cadena y cuando leas la primera letra, truenas el ciclo y con eso obtienes los valores que son números sin importar si aumentaran a mas de 3.

Luego necesitas un ciclo de nuevo para leer el valor de la variable final y leer igual de atras hasta 0, para acomodar los valores de nuevo en el orden correcto.

Deja tengo un poco de tiempo y te pongo el codigo.
  #3 (permalink)  
Antiguo 07/05/2013, 12:56
Avatar de tataNZ  
Fecha de Ingreso: abril-2008
Ubicación: Nueva Zelanda
Mensajes: 33
Antigüedad: 16 años
Puntos: 2
Respuesta: Como mostrar los ultimos numeros en un gridview

Cita:
Iniciado por th3r0rn Ver Mensaje
Hola tengo un gridview con varios campos, pero en una columna me obtiene lo siguiente:

C140K42--LP91
C140K42--P15
C140K42---P150
C140K42-K13

Lo que quiero es obtener el ultimo dato numerico de la cadena, es decir, quedaria asi:
91
15
150
13

Pero nose si haya alguna forma de hacer esto, puesto que aveces la longitud de los ultimos numeros puede ser de 3 o de 2, ademas el campo es tipo strging el cual obtengo de la siguiente manera:
Código C#:
Ver original
  1. klist.Pulgadas = ir.GetString("Pulgadas_Rollos");

Lo que si es seguro es que siempre abra guines y letras antes de el numero.
Saben si de alguna manera es posible obtener esto?
Podrías usar Regular Expressions. Claro, siempre y cuando los números mantengan alguna carácterística.

Este es el sitio con informacion sobre como usar la clase Regex en .Net
http://msdn.microsoft.com/en-nz/libr...ons.regex.aspx

Aquí vas a encontrar un ejemplo de como usarla.
http://www.dotnetperls.com/regex-match

Y aqui un sitio muy util en el que puedes probar las distintas expresiones:
http://gskinner.com/RegExr/

Espero que te sirva
  #4 (permalink)  
Antiguo 07/05/2013, 13:22
 
Fecha de Ingreso: abril-2013
Ubicación: Lima
Mensajes: 83
Antigüedad: 11 años
Puntos: 1
Respuesta: Como mostrar los ultimos numeros en un gridview

si tuvieran la misma longitud seria asi:

Cita:
variable = DataGridView.CurrentRow.Cells.Item(0).Value 'El 0 viene a ser el numero de la columna

Dato01.Text = Mid(Trim(variable), 13, 2)
  #5 (permalink)  
Antiguo 07/05/2013, 13:23
 
Fecha de Ingreso: abril-2013
Ubicación: Lima
Mensajes: 83
Antigüedad: 11 años
Puntos: 1
Respuesta: Como mostrar los ultimos numeros en un gridview

13,2) 'de la posición 13, coger los 2 últimos digitos
  #6 (permalink)  
Antiguo 07/05/2013, 16:21
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Como mostrar los ultimos numeros en un gridview

Hola que tal, bueno lo prometido es deuda... Me tarde un poco porque tenia unas cosas que terminar

Código C#:
Ver original
  1. public static void fCadenas()
  2.         {
  3.             string sCadena = "C140K42---P150", sPuente = "";
  4.             string sCadenaFinal = null;
  5.             Int32 i = 0, nCaracteres = 0, nTotalCaracteresCopiar = 0;
  6.             char[] cImporteFormatear = new char[20];
  7.             char[] cFormato = new char[10];
  8.             bool bSeguir = true;
  9.  
  10.             try
  11.             {
  12.                 // Se limpian las cadenas char
  13.                 for (i = 0; i <= 19; i++)
  14.                 {
  15.                     cImporteFormatear[i] = ' ';
  16.                 }
  17.  
  18.                 for (i = 0; i <= 9; i++)
  19.                 {
  20.                     cFormato[i] = ' ';
  21.                 }
  22.  
  23.                 // Se cambia la cadena String por char
  24.                 for (i = 0; ( i < sCadena.Length ) && bSeguir; i++)
  25.                 {
  26.                     cImporteFormatear[i] = sCadena[nCaracteres];
  27.                     nCaracteres++;
  28.                 }
  29.  
  30.                 // Se lee la cadena char desde el ultimo registro hasta el primero, siempre y cuando sea número ira tomando los valores.
  31.                 // Al encontrar la primera letra saldra del ciclo.
  32.                 // Se obtiene el valor 051
  33.                 nCaracteres = 0;
  34.                 sCadenaFinal = new string(cImporteFormatear);
  35.                 nTotalCaracteresCopiar = sCadenaFinal.ToString().Trim().Length;
  36.                 for (i = cImporteFormatear.ToString().Length; (i > 0) && bSeguir; i--)
  37.                 {
  38.                     nTotalCaracteresCopiar--;
  39.                     if (Char.IsNumber(cImporteFormatear[nTotalCaracteresCopiar]))
  40.                     {
  41.                         cFormato[nCaracteres] = cImporteFormatear[nTotalCaracteresCopiar];
  42.                         nCaracteres++;
  43.                     }
  44.                     else
  45.                     {
  46.                         bSeguir = false;
  47.                     }
  48.                 }
  49.  
  50.                 // Se limpian las cadenas char
  51.                 for (i = 0; i <= 19; i++)
  52.                 {
  53.                     cImporteFormatear[i] = ' ';
  54.                 }
  55.  
  56.                 // Se lee la cadena char desde el ultimo registro hasta el primero, para mostrarlos ordenados ( Se lee el valor 150 )
  57.                 nCaracteres = 0;
  58.                 sCadenaFinal = new string(cFormato);
  59.                 sPuente = sCadenaFinal.ToString().Trim();
  60.                 nTotalCaracteresCopiar = sPuente.Length;
  61.                 for (i = sPuente.Length; i > 0; i--)
  62.                 {
  63.                     nTotalCaracteresCopiar--;
  64.                     cImporteFormatear[nCaracteres] = cFormato[nTotalCaracteresCopiar];
  65.                     nCaracteres++;
  66.                 }
  67.  
  68.                 string sCadenaMostrar = new string(cImporteFormatear);
  69.                 MessageBox.Show(sCadenaMostrar);
  70.             }
  71.             catch (Exception ex)
  72.             {
  73.                 MessageBox.Show(ex.Message.ToString());
  74.             }
  75.         }

Lo hice en C# y funciona sin importar cuantos numeros tengas al final.

Espero te sirva

Esta hecho de un modo rapido, pero si lo puedes mejorar adelante, esta seria la idea principal ... Cualquier cosa me avisas.

Etiquetas: gridview, numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.