Ver Mensaje Individual
  #9 (permalink)  
Antiguo 21/07/2008, 03:00
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Respuesta: Visual Basic 2005 - Diccionario

Cita:
Iniciado por moradazo Ver Mensaje
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