Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: birdez en 31 Mayo 2012, 09:47 am



Título: Traductor con bases de datos
Publicado por: birdez en 31 Mayo 2012, 09:47 am
Buenos dias a todos antes de nada queria pedir disculpas por si el post no va aqui ya q no se en que sitio ponerlo

Bueno os comento mi problema tengo que realizar un traductor en visual basic .net con bases de datos en access (hecha por mi, la cual tiene una tabla y 4 campos, id, palaras español, palabras ingles, y numero de uso, esto es por ejemplo si una palabra tiene mas de una traduccion utilizar siempre la q tenga mayor numero de uso)

mi problema es q no se muy bn como hacerlo ya que quiero comprobar si la palabra introducida en un textbox la tengo en mi base de datos y de ser asi q me imprima la traduccion en otro textbox lo q ocurre sq no se mb como hacerlo

alguien puede ayudarme con este problemilla?

gracias


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 31 Mayo 2012, 09:49 am
[id][Palabra-Español]    [Palabra-Ingles] [hits]
 1       palabra1             word1                 10
 2       p**a                   bitch                   100
 3       p**a                   whore                    99

lo k haces esk al buscar en el texbox 1 una palabra con un radiobutton puesto en ingles.

te coja la palabra del txtbox1 y buske en la base de datos.
lo k tienes k hacer es en el sql de buskeda meterle un order by hits.

cada vez k alguien haga una buskeda,si coincide con la palabra,por ejemplo:

en el textbox pongo,capullo,le sumaria un hit.



lo k debe hacer google,ellos mismos le dan a las palabras una prioridad por uso.
ya k si buscas p**a,saldran las 2 traducciones en ingles y tu no sabras la k tiene mas prioridad para ti.
tienes k darle tu una prioridad generica.

si yo soy tu,les daria a las palabras prioridades genericas,les daria el hit de forma establecida:

[id][Palabra-Español]    [Palabra-Ingles] [hits]
 1       palabra1             word1                 10
 2       p**a                   bitch                   1
 3       p**a                   whore                   2

y lo ordenaria de menor a mayor


Título: Re: Traductor con bases de datos
Publicado por: birdez en 31 Mayo 2012, 17:53 pm
es lo q tu llamas hits digamos q nos pidio q fuese como un contador por ejemplo yo tengo en mi base de datos en acces

    [id]      [español]   [ingles]    [usadas]

     1         hola           hello        2
     2         hola           hi            1


pues el programa tiene q mirar el numero de veces q sea usado cada palabra y coger la q mas usos tenga, en este caso hello, y deberia aumentar una vez mas el numero de usadas que seria 3 asi con cada repeticion de palabras


y otro problema q tengo es que si quiero poner que la palabra del textbox sea igual a la de mi base de datos no consigo que me la detecte ni igualandola al dataset ni al bindingsource ni nada alomejor es una tonteria pro ns xq me pasa eso :S

gracias x la ayuda


Título: Re: Traductor con bases de datos
Publicado por: birdez en 31 Mayo 2012, 20:57 pm
Hola a ver si podeis ayudarme para traducir una palabra la busco en el data set mediante una secuencia select

select * from palabras where español = ?  // para que me escoja la palabra en español q yo le paso

pro ahora mi duda es como puedo comparar la palabra en español con la de ingles como puedo hacer para q el programa sepa q si le digo la palabra "hola" sepa q es "hi"

la base de datos la tengo en acces y la "escructura" es asi :

usadas: es el numero de veces q sea ha usado esa palabra y tiene q ir aumentando a menida q se vaya usando

 [id]      [español]   [ingles]    [usadas]

     1         hola           hello        2
     2         hola           hi            1


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 1 Junio 2012, 11:09 am
Hola a ver si podeis ayudarme para traducir una palabra la busco en el data set mediante una secuencia select

select * from palabras where español = ?  // para que me escoja la palabra en español q yo le paso

pro ahora mi duda es como puedo comparar la palabra en español con la de ingles como puedo hacer para q el programa sepa q si le digo la palabra "hola" sepa q es "hi"

la base de datos la tengo en acces y la "escructura" es asi :

usadas: es el numero de veces q sea ha usado esa palabra y tiene q ir aumentando a menida q se vaya usando

 [id]      [español]   [ingles]    [usadas]

     1         hola           hello        2
     2         hola           hi            1




muy facil,ahora no se la estructura xD,pero te dire como.

tu tienes 4 campos en la tabla (4 columnas).
lo k tienes k hacer es k te sake la fila entera.

a ver,tu comparas

select ingles from palabras where español = "Hola";

entonces te llevara aki
 [id]      [español]   [ingles]    [usadas]

     1         hola           hello        2


con poner esa select te saka la palabra en ingles,no hay k hacer mas


Título: Re: Traductor con bases de datos
Publicado por: birdez en 1 Junio 2012, 15:57 pm
mira en el Dataset yo ice esta consulta:

Select * from Plabras where espñaol = ? ;

para que me sacare la palabra q yo le paso (q es como me enseñaron ami q se ace q al poner? te refieres a un dato q tu le pasas)

y despues en el codigo puse esto :


If RadioButtonEsp.Checked = True Then

                If PalabrasTableAdapter.FillByPalabrasIngles(Me.DiccionarioDataSet.Palabras, TextBox1.Text) Then
                    MessageBox.Show("La palabra existe")
                Else
                    MessageBox.Show("La palabra NO existe")
                End If
End if


y lo puse para comprobar si me encontraba palabras que habia en mi base d datos y la verdad q em las saca asi q supongo q eso esta bn

lo que no se ace ahora es para comparar la palabra q yo le paso con la de mi base de datos

por ejemplo le paso la palabra gato q la tengo y tal y como esta me aparece q existe ( xq asi lo pone el messagebox) pro yo no qiero hacer eso quiero q me identifique me refiero a esa palabra y acer la manera q me saque la palabra ingles ns si me explico bn

gracias x la ayuda


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 1 Junio 2012, 17:54 pm
mira en el Dataset yo ice esta consulta:

Select * from Plabras where espñaol = ? ;

para que me sacare la palabra q yo le paso (q es como me enseñaron ami q se ace q al poner? te refieres a un dato q tu le pasas)

y despues en el codigo puse esto :


If RadioButtonEsp.Checked = True Then

                If PalabrasTableAdapter.FillByPalabrasIngles(Me.DiccionarioDataSet.Palabras, TextBox1.Text) Then
                    MessageBox.Show("La palabra existe")
                Else
                    MessageBox.Show("La palabra NO existe")
                End If
End if


y lo puse para comprobar si me encontraba palabras que habia en mi base d datos y la verdad q em las saca asi q supongo q eso esta bn

lo que no se ace ahora es para comparar la palabra q yo le paso con la de mi base de datos

por ejemplo le paso la palabra gato q la tengo y tal y como esta me aparece q existe ( xq asi lo pone el messagebox) pro yo no qiero hacer eso quiero q me identifique me refiero a esa palabra y acer la manera q me saque la palabra ingles ns si me explico bn

gracias x la ayuda



tu tienes un textbox k lo llamaras txt1.
cuando alguien pone en ese textbox la palabra "gato" en el textbox2 txt2 saldra "cat"

en el evento click del boton enviar tendras algo asi:

onclick_button(sender e,........){


String PalabraTxt1=txt1.text; ---> Esto guarda "gato" en la var palabratxt1.

// luego haces la select

//Select * from Plabras where espñaol = ? --> kita el * ya k solo kieres k te muestre la palabra en ingles,el resto no interesa

Select Ingles from Palabras where Español= PalabraTxt1; --> ahi estas comparando,estas buscando en la base de datos si coincide.


cuando obtengas la palabra,la muestras en el txt2.text y ya esta.

}


Título: Re: Traductor con bases de datos
Publicado por: birdez en 1 Junio 2012, 19:21 pm
 te comento ice como me dijiste pro en el DataSet tengo q poner esta consulta

SELECT        Ingles
FROM            Palabras
WHERE        (Español = ?)


sino me da error en el where al ejecutar la consulta desde el Dataset ( para comprobar q al poner gato me sale cat)
ahí en el data set si q me sale
pro después en el código no me sale me vuelve a salir gato en vez de cat

si quieres te paso el cachin de código como lo tengo ahora sq si t lo paso todo a lo mejor es mas lioso lo entenderás bn pro antes tengo cosas puestas en plan si eliges esta opción en el combobox que te aparezca este mensaje sino que haga esto y cosas así


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 1 Junio 2012, 21:54 pm
postea el programa entero k llevas haciendo,quiero echarle una ojeada


Título: Re: Traductor con bases de datos
Publicado por: birdez en 1 Junio 2012, 22:01 pm
que te postee el codigo entero o el proyecto entero la aplicacion de visual basic dices?

sea lo q sea lo q quieras explicame como debo hacerlo xfa


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 1 Junio 2012, 22:48 pm
copy/paste del codigo de la aplicacion k  programaste


Título: Re: Traductor con bases de datos
Publicado por: birdez en 1 Junio 2012, 23:34 pm
LA APLICACIÓN DEBE TRADUCIR FRASES PRO PRIMERO QUIERO COMPROBAR SI SE TRADUCIR PALABRAS SUELTAS PARA MIRAR DESPUÉS A TRADUCIR FRASES QUE TENGAS SEPARADORES COMO ESPACIOS, PUNTOS, COMAS Y PUNTOS Y COMAS QUE AUN NO LO CONSEGUÍ HACER :S

SINO COMPRENDES CUALQUIER COSA DIMELO SIN PROBELMAS

GRACIAS



Código:


Public Class Form1
    Dim añadirpalaras As New Dialog1

    Private Sub PalabrasBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs)
        Me.Validate()
        Me.PalabrasBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DiccionarioDataSet)

    End Sub

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'DiccionarioDataSet.Palabras' Puede moverla o quitarla según sea necesario.
        Me.PalabrasTableAdapter.Fill(Me.DiccionarioDataSet.Palabras)

        ComboBox1.Items.Add("Seleccione un idioma")
        ComboBox1.Items.Add("Español")
        ComboBox1.Items.Add("Ingles")

        ComboBox1.SelectedIndex = 0
    End Sub

    Private Sub BotonSalir_Click(sender As System.Object, e As System.EventArgs) Handles BotonSalir.Click
        Me.Close()
    End Sub

    Private Sub ButtonAñadir_Click(sender As System.Object, e As System.EventArgs) Handles ButtonAñadir.Click
        añadirpalaras.ShowDialog()
    End Sub

    Private Sub BotonTraducir_Click(sender As System.Object, e As System.EventArgs) Handles BotonTraducir.Click
        Dim PalabraTxt1 As String

        Dim palabra As String


        PalabraTxt1 = TextBox1.Text

        If String.IsNullOrEmpty(TextBox1.Text) Then
            MessageBox.Show("Debe introducir un texto para traducirlo")
            TextBox1.Focus()


        ElseIf ComboBox1.SelectedItem = "Seleccione un idioma" Then

            MessageBox.Show("Debe elegir un idioma original")
        ElseIf ComboBox1.SelectedItem = "Español" Then

            If RadioButtonIng.Checked = True Then
                If PalabrasTableAdapter.FillByPalabrasIngles(Me.DiccionarioDataSet.Palabras, PalabraTxt1) Then

                    'AQUI ES DONDE TENGO QUE PONER QUE EL TEXTBOX ESCRIBA LA PALABRA INGLESA
                Else
                    MessageBox.Show("La palabra NO existe")
                End If
            Else

                MessageBox.Show("Debe elegir un idioma para traducir")
            End If

        ElseIf ComboBox1.SelectedItem = "Ingles" Then



            If RadioButtonEsp.Checked = True Then

                If PalabrasTableAdapter.FillByPalabrasIngles(Me.DiccionarioDataSet.Palabras, TextBox1.Text) Then
                    MessageBox.Show("La palabra existe")
                Else

                End If


            Else

                MessageBox.Show("Debe elegir un idioma para traducir")
            End If
        End If

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        If ComboBox1.SelectedItem = "Seleccione un idioma" Then
            RadioButtonEsp.Enabled = False
            RadioButtonIng.Enabled = False
        End If

        If ComboBox1.SelectedItem = "Español" Then
            RadioButtonEsp.Enabled = False
            RadioButtonIng.Enabled = True
        End If

        RadioButtonIng.Checked = False

        If ComboBox1.SelectedItem = "Ingles" Then
            RadioButtonIng.Enabled = False
            RadioButtonEsp.Enabled = True
        End If

        RadioButtonEsp.Checked = False

    End Sub

    Private Sub ButtonLimptextotraducir_Click(sender As System.Object, e As System.EventArgs) Handles ButtonLimptextotraducir.Click
        TextBox1.Clear()
    End Sub

    Private Sub ButtonLimpiarTextTraducido_Click(sender As System.Object, e As System.EventArgs) Handles ButtonLimpiarTextTraducido.Click
        TextBox2.Clear()
    End Sub

   
   
End Class






Título: Re: Traductor con bases de datos
Publicado por: Roboto en 1 Junio 2012, 23:55 pm
 :-(

pero las dudas no las tenias con la base de datos y la sql?¿?¿?
faltan esos codigos


Título: Re: Traductor con bases de datos
Publicado por: birdez en 2 Junio 2012, 00:13 am
la secuencia q puse en el dataset para crear el fill es la q me dijiste

SELECT Ingles
FROM Palabras
WHERE Español = ?

Y MI DUDA AHORA ES DODNE PONER LO DE:

If RadioButtonIng.Checked = True Then
                If PalabrasTableAdapter.FillByPalabrasIngles(Me.DiccionarioDataSet.Palabras, PalabraTxt1) Then

                    'AQUI ES DONDE TENGO QUE PONER QUE EL TEXTBOX ESCRIBA LA PALABRA INGLESA
                Else
                    MessageBox.Show("La palabra NO existe")
                End If
            Else

                MessageBox.Show("Debe elegir un idioma para traducir")
            End If


DONDE PONE LO DE AQUI ES DONDE.....

hay como puedo poner para referirme a la palabra inglesa la palabra en español me la encuentra xq si la imprimo me la imprime pro la ingles no consigo sacarla no se q tenog que poner esa es mi duda

sabes lo q quiero decirte?


Título: Re: Traductor con bases de datos
Publicado por: birdez en 3 Junio 2012, 17:25 pm
Sabes lo q quiero decirte?


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 3 Junio 2012, 17:36 pm
la sql te tiene k devolver una palabra en ingles.
solo tienes k ponerla en el textbox.Text y ya esta.

no recuerdo ahora mismo las instrucciones pork cada personas accede de forma diferente a la base de datos.
yo por ejemplo hacia dataReaders,guardaba los datos dentro y luego accedia ( C#)
tu lo haces con un dataset,asi k el codigo k tienes k poner no se decirtelo al 100%.

solo tienes k acceder a tu dataset,pillarle el campo donde guardas la palabra en ingles y mostrarla en el textbox.

p.d: esas cosas tendrias k saberlas,como has conseguido aprobar acceso a datos?¿?¿?¿?¿?¿?¿


Título: Re: Traductor con bases de datos
Publicado por: birdez en 3 Junio 2012, 19:30 pm
no he a aprobado accesos a daros x eso os pregunto que como se hace xq no se hacer lo q te pido jaja

no se acceder a esa columna desde el dataset si me dices como se puede hacer lo intento y te sigo comentando como lo he hecho gracias


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 3 Junio 2012, 20:09 pm
 :-(

no te puedo ayudar mucho pork hace años k no toco esas cosas.
lo k si te puedo dar es esto.

es un codigo de cuando yo acabe el modulo,k programe en VB,pancima eso.
no tienes ni k usar sentencias sql,solo tienes k navegar atraves del dataset o lo k kiera k sea.

cuando agregas una base de datos al vb,la arrastras al formulario y el propio visual lo hace todo.
eso es lo k hacia,luego con las instrucciones k ves ahi,recorro el dataset como si fuera un array.

http://s2.subirimagenes.com/privadas/1856418sin-ttulo.jpg

mas k eso no te puedo ayudar,hay tutoriales en google de como hacerlo


p.d: ese codigo lo k hace es k tu metes un usuario y comprueba si existe ese usuario


Título: Re: Traductor con bases de datos
Publicado por: birdez en 3 Junio 2012, 20:20 pm
no puedo ver la imagen me sale q no a sigo encontrada?   :(


Título: Re: Traductor con bases de datos
Publicado por: Roboto en 3 Junio 2012, 20:23 pm
no puedo ver la imagen me sale q no a sigo encontrada?   :(

dale a intro,en la url,copiala y dale a intro.


Título: Re: Traductor con bases de datos
Publicado por: birdez en 3 Junio 2012, 20:54 pm
ok ok ya la vi muchas gracias x la ayuda :)