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