Ayuda con textbox (Comparar y eliminar cadenas) en vs.net

Iniciado por KCHO089, 19 Junio 2014, 06:02 AM

0 Miembros y 1 Visitante están viendo este tema.

KCHO089

Saludos amigos necesito una mano, estoi desarrollando una aplicación en vs2008 que manejara seriales de las unidades de disco de la compu, las mimas que se convertirán en llaves únicas para la computadora, ahora necesito realizar un comprobación de que la usb es la correcta y no ha sido alterada como lo hago ps con el serial único de la memoria.



Dim strSN As String = ""
       Dim strQuery As String = "SELECT * FROM Win32_PhysicalMedia"
       Dim query As ManagementObjectSearcher = New ManagementObjectSearcher(strQuery)
       Dim i As Integer = 0
       For Each mo As ManagementObject In query.[Get]()
           If mo("SerialNumber") Is Nothing Then
               strSN = strSN & " " & "N/A Serial"
           Else
               strSN = strSN & " " & mo("SerialNumber").ToString()
           End If
           i += 1
       Next
       TextBox1.Text = strSN



logre extraer esos datos (seriales de las unidades), y se me presentan asi:
_W0494XJW_0C71C850C0923A66_M5C214K1438

(_) es espacio vacio, he colocado un campo que almacena las unidades logicas sin contar las usb

_W0494XJW_M5C214K1438
Unidad C:     Unidad CD

al conectar el flas memory me sale
_W0494XJW_0C71C850C0923A66_M5C214K1438
Unidad C:     Unidad USB               Unidad CD

miren un screen http://www.subirimagenes.com/otros-sinttulo-8961668.html

ahora lo que deseo es que en el 3er campo se extraiga la cadena que no se encuentra en el campo 1 y 2, lo que significaria que la unidad USB es la del serial resultante que seria

_0C71C850C0923A66

de antemano les envio saludos  a todos y espero que puedan ayudarme,

El Benjo

Hazlo mediante la función split() en el parámetro del separador utilizas "_".

http://msdn.microsoft.com/es-es/library/6x627e5f(v=vs.90).aspx

Después comparas las cadenas con las que tienes almacenadas y si hay alguna que no se encuentre, pues ya sabes que esa pertenece a la memoria.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

KCHO089

Cita de: El Benjo en 19 Junio 2014, 06:14 AM
Hazlo mediante la función split() en el parámetro del separador utilizas "_".

http://msdn.microsoft.com/es-es/library/6x627e5f(v=vs.90).aspx

Después comparas las cadenas con las que tienes almacenadas y si hay alguna que no se encuentre, pues ya sabes que esa pertenece a la memoria.


ola use el split de esta manera:


Dim cadena As String
       Dim tabla() As String
       Dim n As Integer

       cadena = TextBox1.Text
       tabla = Split(cadena, " ")

       For n = 0 To UBound(tabla, 1)
           MessageBox.Show(tabla(n))
       Next
   End Sub

y para buscar en las cadenas use:

Dim regex As New Regex(Me.TextBox2.Text, RegexOptions.RightToLeft)
       TextBox3.Text = regex.Replace(TextBox1.Text, String.Empty).ToString

me saca el mismo resultado, osea todas las unidades mas no la que necesito que seria la cadena que no se repite en el text 1 y text2

El Benjo

No ubico que es eso de "Regex", pero yo la búsqueda la haría de la siguiente manera:

Código (vbnet) [Seleccionar]
For n = 0 to tabla.lenght - 1
   If tabla(n) <> TextBox2.Text And tabla(n) <> TextBox3.Text Then
'Aquí el código en caso de que no esté en ninguno de los textbox.
   End if
Next


Suponiendo que la variable 'cadena' es igual a:_W0494XJW_0C71C850C0923A66_M5C214K1438

Y otra cosa el split debes hacerlo con el caracter "_" en lugar del espacio:

Código (vbnet) [Seleccionar]
tabla = Split(cadena, "_")
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

Eleкtro

Cierro el tema por pregunta duplicada.

PD: Te dejo esto por aquí, por si no llegas a leer mi respuesta en el otro tema:

Cita de: http://foro.elhacker.net/net/necesito_ayuda_con_unos_textbox_en_net-t416897.0.html;msg1951455#msg1951455Puedes utilizar el método Except para llevar a cabo la tarea:

Código (vbnet) [Seleccionar]
Dim Seriales1 As String = "_xxxxxxxx_zzzzzzzzz"
Dim Seriales2 As String = "_xxxxxxxx_hhhhhhhh_zzzzzzzzz"
Dim Seriales3 As String = String.Join("_", Seriales2.Split("_").Except(Seriales1.Split("_")))


Saludos

Saludos