Cita:
Iniciado por moradazo
Por favor, que alguien me ayude a hacer el diccionario de inglés-español nada más necesito saber el bucle que me busque en el archivo .ini
Gracias!
Basándonos en aquel ejemplo que te puse para cargar el .ini en un ListView, podemos crear una función como ésta:
Código:
Private Function Traducir(ByVal sPalabra As String, ByVal Idioma As String) As String
Dim sb As New System.Text.StringBuilder(255)
Dim ip As IntPtr = Runtime.InteropServices.Marshal.AllocHGlobal(255)
Dim bt As Byte = GetPrivateProfileSection("Usuarios", ip, 255, "C:\Temp.ini")
For i As Integer = 0 To bt - 1
sb.Append(Convert.ToChar(Runtime.InteropServices.Marshal.ReadByte(ip, i)))
Next
sb.Remove(sb.Length - 1, 1)
Dim Encontrado As Boolean
Dim sBuscar As String = ""
For Each line As String In sb.ToString().Split(Convert.ToChar(0))
Dim iPos As Integer = InStr(line, ",") - 1
If Idioma = "Ingles" Then
sBuscar = (Microsoft.VisualBasic.Left(line, iPos))
If sBuscar = sPalabra Then
sBuscar = (Microsoft.VisualBasic.Right(line, Len(line) - iPos - 1))
Encontrado = True
Exit For
End If
Else
sBuscar = (Microsoft.VisualBasic.Right(line, Len(line) - iPos - 1))
If sBuscar = sPalabra Then
sBuscar = (Microsoft.VisualBasic.Left(line, iPos))
Encontrado = True
Exit For
End If
End If
Next
If Encontrado = False Then sBuscar = "No existe en el diccionario"
Runtime.InteropServices.Marshal.FreeHGlobal(ip)
Return sBuscar
End Function
Para llamarla, le pasas como parámetros la palabra a buscar y el idioma.
Suponemos que tenemos dos TextBox, en el primero escribimos la palabra a buscar y en el segundo mostraremos la traducción. También hemos puesto dos Buttons (InglesAEspañol y EspañolAIngles)
Código:
Private Sub InglesAespañol_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InglesAespañol.Click
TextBox2.Text = Traducir(TextBox1.Text, "Ingles")
End Sub
Private Sub EspañolAingles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EspañolAingles.Click
TextBox2.Text = Traducir(TextBox1.Text, "Español")
End Sub