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
[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
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
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
Cita de: 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
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
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
Cita de: 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
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.
}
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í
postea el programa entero k llevas haciendo,quiero echarle una ojeada
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
copy/paste del codigo de la aplicacion k programaste
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
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
:-(
pero las dudas no las tenias con la base de datos y la sql?¿?¿?
faltan esos codigos
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?
Sabes lo q quiero decirte?
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?¿?¿?¿?¿?¿?¿
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
:-(
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
no puedo ver la imagen me sale q no a sigo encontrada? :(
Cita de: birdez en 3 Junio 2012, 20:20 PM
no puedo ver la imagen me sale q no a sigo encontrada? :(
dale a intro,en la url,copiala y dale a intro.
ok ok ya la vi muchas gracias x la ayuda :)