metodo de .NET

Iniciado por andaluz, 1 Febrero 2012, 18:31 PM

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

andaluz

Hola a todos

tengo una pequeña duda que creo que no es muy complicada de resolver. me gustaría saber cual es el método que tengo que utilizar para elegir de una cadena que me lea un numero de caracteres concreto, por ejemplo;

mis ordenadores

y me devuelva 8 caracteres:

is orden

saludos

kub0x

Buenas tardes andaluz,

si echas un vistazo a los métodos de la clase String comprobarás que ahí reside la solución a tu duda.
Utilizando el método SubString podrás recuperar un número determinado de carácteres de una cadena.

Por ejemplo:

Código (VB.NET) [Seleccionar]

Dim cadena As String = "Mis ordenadores"
Dim output_final As String = cadena.SubString(0,8)
Msgbox(output_final)


Básicamente lo que hace este método es devolver 8 caracteres de la variable cadena empezando desde la posición 0 y contando hasta la 8.

Tienes los ejemplos de este método en Msdn (te dejo el enlace)

http://msdn.microsoft.com/es-es/library/aka44szs.aspx#Y1021

Saludos.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


andaluz

haber si me pueden ayudar a realizar este procedimiento, el procedimiento es el siguiente:

  Al pulsar buscar y reemplazar (SI LA IP A BUSCAR esta en el fichero HOSTS) la reemplazara por la nueva, o no mostrando un mensaje.

tengo un formulario en el cual tengo 8 textbox, 1 para cada grupo de numeros de la ip y lo que tengo que realizar es lo siguiente:

  tengo un fichero el cual tiene varias ip y lo que tiene que hacer es que yo le introduzco una ip en los 4 textbox y si existe esa ip en el fichero la reemplaza por la ip que coloque en los 4 textbox ultimos.

el codigo que yo he realizado es el siguiente:
Código (vbnet) [Seleccionar]

Const fichero As String = "C:\ejer\Ficheros\windows2\copi_hosts"

' 1. camino o estrean para cargar la informacion
           Dim sr As New System.IO.StreamReader(fichero)
           ' 2. leer el archivo
           leer_ip = sr.ReadLine
           leer_nombre = sr.ReadLine
           leer_comentario = sr.ReadLine

           ip_buscar = CStr(txt_B1.Text(Mid(1, 3)) & "." & txt_B2.Text(Mid(5, 7)) & "." & txt_B3.Text(Mid(9, 9)) & "," & txt_B4.Text(Mid(11, 12)))
               MessageBox.Show("ip_buscar: " & ip_buscar)

       Catch ex As Exception

       End Try


aunque creo que seria una mejor forma de realizarlo haciendo lo siguiente:
    mirar la estructura del fichero hosts y crear una estructura y una matriz de estructuras que recoja esa información. cuando lo reemplacemos lo cambiaremos en la matriz de estructuras y después enviamos toda la matriz al fichero.

espero haberme explicado bien, si tienen alguna duda preguntenme

andaluz

he realizado el procedimiento de otra forma, pero no lo he terminado, haber que les parece esta otra forma??

espero que me puedan ayudar a terminarlo.

Código (vbnet) [Seleccionar]

Dim leer_ip, leer_nombre, leer_comentario As String
        Const fichero As String = "C:\examen_carlos_barea\ExamenFicheros\windows2\copi_hosts"
        Dim sr As New System.IO.StreamReader(fichero)

        leer_ip = "1.1.1.1"

        If My.Computer.FileSystem.FileExists(fichero) = True Then
            Do Until (leer_ip = Nothing)
                leer_ip = sr.ReadLine
                leer_nombre = sr.ReadLine
                leer_comentario = sr.ReadLine
                If leer_ip = Nothing Then
                    Exit Do
                End If
                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 1, 3)
                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 5, 7)
                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 9, 9)
                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 11, 12)
                S_ip(S_ip.Length - 1).nombre = leer_nombre
                S_ip(S_ip.Length - 1).comentario = leer_comentario
                sr.ReadLine()
                'If (S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 1, 3) = leer_ip And S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 5, 7) = leer_ip) And (S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 9, 9)) And (S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 11, 12)) Then
                '    MessageBox.Show("ok")
                'End If
                ' aumento la matriz
                ReDim Preserve S_ip(S_ip.Length)
            Loop
            sr.Close()
        Else
            MessageBox.Show("El fichero de inicio no existe...", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If

seba123neo

@ andaluz

un consejo es que no escribas los metodos de visual basic, primero que no hace falta llamar a Microsoft.VisualBasic. para acceder al metodo "Mid" y segundo seria mejor que uses substring ya que es el metodo de .NET, sino estarias programando como en el viejo visual basic 6 y seria mala practica digamos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

andaluz