Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: andaluz en 1 Febrero 2012, 18:31 pm



Título: metodo de .NET
Publicado por: andaluz en 1 Febrero 2012, 18:31 pm
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


Título: Re: metodo de .NET
Publicado por: kub0x en 1 Febrero 2012, 18:53 pm
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
  1. Dim cadena As String = "Mis ordenadores"
  2. Dim output_final As String = cadena.SubString(0,8)
  3. Msgbox(output_final)
  4.  

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 (http://msdn.microsoft.com/es-es/library/aka44szs.aspx#Y1021)

Saludos.


Título: Re: metodo de .NET
Publicado por: andaluz en 1 Febrero 2012, 19:48 pm
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
  1. Const fichero As String = "C:\ejer\Ficheros\windows2\copi_hosts"
  2.  
  3. ' 1. camino o estrean para cargar la informacion
  4.            Dim sr As New System.IO.StreamReader(fichero)
  5.            ' 2. leer el archivo
  6.            leer_ip = sr.ReadLine
  7.            leer_nombre = sr.ReadLine
  8.            leer_comentario = sr.ReadLine
  9.  
  10.            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)))
  11.                MessageBox.Show("ip_buscar: " & ip_buscar)
  12.  
  13.        Catch ex As Exception
  14.  
  15.        End Try
  16.  

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


Título: Re: metodo de .NET
Publicado por: andaluz en 1 Febrero 2012, 20:36 pm
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
  1. Dim leer_ip, leer_nombre, leer_comentario As String
  2.        Const fichero As String = "C:\examen_carlos_barea\ExamenFicheros\windows2\copi_hosts"
  3.        Dim sr As New System.IO.StreamReader(fichero)
  4.  
  5.        leer_ip = "1.1.1.1"
  6.  
  7.        If My.Computer.FileSystem.FileExists(fichero) = True Then
  8.            Do Until (leer_ip = Nothing)
  9.                leer_ip = sr.ReadLine
  10.                leer_nombre = sr.ReadLine
  11.                leer_comentario = sr.ReadLine
  12.                If leer_ip = Nothing Then
  13.                    Exit Do
  14.                End If
  15.                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 1, 3)
  16.                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 5, 7)
  17.                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 9, 9)
  18.                S_ip(S_ip.Length - 1).ip = Microsoft.VisualBasic.Mid(sr.ReadLine(), 11, 12)
  19.                S_ip(S_ip.Length - 1).nombre = leer_nombre
  20.                S_ip(S_ip.Length - 1).comentario = leer_comentario
  21.                sr.ReadLine()
  22.                '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
  23.                '    MessageBox.Show("ok")
  24.                'End If
  25.                ' aumento la matriz
  26.                ReDim Preserve S_ip(S_ip.Length)
  27.            Loop
  28.            sr.Close()
  29.        Else
  30.            MessageBox.Show("El fichero de inicio no existe...", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
  31.        End If
  32.  


Título: Re: metodo de .NET
Publicado por: seba123neo en 2 Febrero 2012, 02:13 am
@ 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.


Título: Re: metodo de .NET
Publicado por: andaluz en 2 Febrero 2012, 13:09 pm
ok gracias