Autor
|
Tema: Ayuda! Separadores en un textbox (Leído 20,999 veces)
|
birdez
Desconectado
Mensajes: 114
|
se lo q es un array
me refiero si ese array es q tengo q crear uno nuevo o q se refeiere a mis arrays que ta tengo creados!
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Se supone que tenes un texto por ejemplo:
"Hola me llamo Eduardo, mal por mi."
Y tu programa primero remplazara los simbolos por nada, es decir los quitara, pero con remplazar por nada es mas rapido. texto.Replace(",", "") texto.Replace(".", "") texto.Replace(";", "")
Entonces por ahora el codigo te va quedando asi:
"Hola me llamo Eduardo mal por mi"
Asi que ahora le haces un split por espacios.
array() = split(texto, " ")
y en este caso te queda un array de 7 elementos.
"Hola" "me" "llamo" "Eduardo" "mal" "por" "mi"
Ahi tienes tu array, ahora lo que te toca es a vs ver como creas la funcion para traducir, es solo pensar un poco
|
|
|
En línea
|
|
|
|
birdez
Desconectado
Mensajes: 114
|
no se por que no me quita ni las comas ni los puntos ni eso joder esto es una ***** fijo q es una gilipolles pro stoy tan harto que no veo nadaaa!!! e probado todo esto
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 'separadores(TextBox1.Text) Dim texto As String texto = TextBox1.Text Dim i As Integer = 0
' For i = 0 To texto.Length texto.Replace(",", "") texto.Replace(".", "") texto.Replace(";", "") 'MessageBox.Show(texto(i))
'Next 'For i = 0 To array.GetUpperBound(0) Dim array() = Split(texto, " ") 'Next
'For i = 0 To array.GetUpperBound(0) ' MessageBox.Show(array(i)) 'Next TextBox2.Text = texto End Sub
|
|
« Última modificación: 1 Junio 2012, 21:26 pm por birdez »
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Esque mira, asi se usa el Replace(), yo en su vez me confundi con esto tambien. private void button3_Click(object sender, EventArgs e) { string texto; string[] listado; texto = textBox1.Text; texto = texto.Replace(";", ""); texto = texto.Replace(",", ""); texto = texto.Replace(".", ""); texto = texto.Replace("-", ""); texto = texto.Replace("_", ""); texto = texto.Replace("^", ""); texto = texto.Replace("*", ""); texto = texto.Replace("?", ""); texto = texto.Replace("¿", ""); texto = texto.Replace("!", ""); texto = texto.Replace("¡", ""); texto = texto.Replace("+", ""); texto = texto.Replace("/", ""); texto = texto.Replace("&", ""); texto = texto.Replace("%", ""); texto = texto.Replace("$", ""); texto = texto.Replace("·", ""); texto = texto.Replace("\"", ""); // remplaza las comillas dobles por nada (las quita) texto = texto.Replace("%", ""); texto = texto.Replace("'", ""); string[] delimitador = {" "}; listado = texto.Split(delimitador, StringSplitOptions.RemoveEmptyEntries); foreach (string palabra in listado) { MessageBox.Show(palabra); } }
Lo hice en C#, vs pasalo a vb.net. Viste que cuando usas el metodo Replace, devuelve una cadena pero no modifica directo, por eso tenes que asignarle esa cadena que devuelve a nuestro texto. Y veras que remplaza TODOS los simbolos, es decir, no tienes que hacer un bucle para que recorra todos los caracteres, eso lo hace solo. Despues.. lo del split().. te confundiste tambien, y esta muy mal lo que hiciste, fijate que dentro del bucle creas la variable del array, asi que esta todo mal. Split() te devuelve un array[] entonces vos lo que tenes que hacer declarar el array y asignarle el valor que devuelve split, asi como hice yo. Luego le agregue una opcion para que borre las entradas vacias, cosa que en este caso no pasaria pero por las dudas lo pongo. Creo que en vb.net es mas facil el uso de Split aun, ya que no tenes que crear un string[] delimitador antes como hice yo, ya que la funcion Split me pide ese string[] aunque solo sea 1, pero tengo que crear el array con un solo elemento y listo. Despues simplemente hice un bucle para recorrer el array, vos lo que haras es usarlo en tu funcion para traducir palabra por palabra. A ver si arreglas eso, mirando mi codigo + lo que te explique y nos dejas el codigo mas o menos terminado aunquesea xD
|
|
|
En línea
|
|
|
|
birdez
Desconectado
Mensajes: 114
|
ok el codigo que tengo ahora es el siguiente y ya me elimina los separadores y me separa las palabras Public Class Form2 Dim dicIng As String() = {"Car", "Door", "House", "Train", "Dog"} Dim dicEsp As String() = {"Coche", "Puerta", "Casa", "Tren", "Perro"} Dim texto As String
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click separadores(TextBox1.Text) TextBox2.Text = texto End Sub
Public Function separadores(frase As String) As String
Dim listado() As String Dim separador As String = " "
texto = TextBox1.Text texto = texto.Replace(";", "") texto = texto.Replace(",", "") texto = texto.Replace(".", "") texto = texto.Replace("?", "") texto = texto.Replace("¿", "") texto = texto.Replace("!", "") texto = texto.Replace("¡", "")
listado = Split(texto, separador) Return texto End Function End Class
Ahora mi duda es como vuelvo a poner los separadores otra vez en su sitio hay alguna forma? es decir si yo traducto, Coche, rojo me aparezca Car, red NO ---> Car red gracias x la explicacion Edu
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Pero hiciste cualquier cosa, fijate que haces un split pero se pierde ese array listado, asi que para que haces el split? y nunca usas la variable que se paso por parametro xD Organizate mejor con las funciones que crearas, es lo primero que tendrias que haber hecho, luego solo te queda hacer el codigo como sea para que esa funcion devuelva o haga lo que necesitas. Pero la implementacion de las funciones es lo primero pienso yo. Por ejemplo, tienes que ver que hara tu proyecto.. sera un traducidor.. habra un textbox1 y un textbox2, del 1 pasa la traduccion al 2. Ahora que ya sabemos que lo que tenemos que hacer es guardar todas las palabras del texto en un array, ya sabemos el nombre de una funcion y que devolvera que en este caso puede ser: Public Function Listado(ByVal texto As String) As String() Esa funcion devolvera un array de string, con todas las palabras, dentro manejara el texto a traducir que le pasemos (nuestro textbox1), pero como ves se le paso el valor y no la referencia, es decir, no estaremos modificando el texto original (el textbox1). Luego que tenemos las palabras que se hace? verificar en otro array ya establecido si existe su traduccion y sino existe que muestre lo mismo asi que podes hacer una funcion que ya se llame Traducir. Public Function Traducir(ByVal palabras As String()) As Boolean Haces una funcion booleana para que devuelva False si hay un error, pero lo importante es todo lo que hara dentro. Asi que ahora ya esta, solo queda hacer el codigo para que llame a esas funciones: Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim lista() As String ' creamos el array donde guardaremos las palabras lista = Listado(TextBox1.Text) ' asignamos el array que devuelve la funcion Listado a nuestro array lista() If not Traducir(lista) then MessageBox.Show("Ha ocurrido un error!") ' Si esa funcion no da True, entonces hubo un error, como habiamos dicho End Sub
Y la funcion Listado es asi: Public Function Listado(ByVal texto As String) As String() Dim list() As String Dim separador As String = " " texto = texto.Replace(";", "") texto = texto.Replace(",", "") texto = texto.Replace(".", "") texto = texto.Replace("-", "") texto = texto.Replace("_", "") texto = texto.Replace("^", "") texto = texto.Replace("*", "") texto = texto.Replace("?", "") texto = texto.Replace("¿", "") texto = texto.Replace("!", "") texto = texto.Replace("¡", "") texto = texto.Replace("+", "") texto = texto.Replace("/", "") texto = texto.Replace("&", "") texto = texto.Replace("%", "") texto = texto.Replace("$", "") texto = texto.Replace("·", "") texto = texto.Replace("\"", "") 'remplaza las comillas dobles por nada (las quita) texto = texto.Replace("%", "") texto = texto.Replace("'", "") list = Split(texto, separador) Return list End Function
Ahora lo de traducir, no estoy seguro si es lo que quieres, pero mejor lo haces vos asi no te dejo todo hecho, por lo menos espero que ahora pongas el codigo de la forma que te digo y por lo menos estes bien organizado y muestres tu codigo con avance de la funcion Traducir que te queda para que la hagas vos. Edit: Como veras, el textbox1.text seguira siendo el mismo, asi que seguramente lo usaras en la funcion, que talvez cambian los parametros de esa funcion para que le pases el textbox1 que tiene las comas y los demas simbolos. Tal vez te toca buscar y remplazar las palabras por la traducion.
|
|
|
En línea
|
|
|
|
birdez
Desconectado
Mensajes: 114
|
$Edu$ muchisimas gracias x la ayuda
mñn cuando acabe el codigo t lo paso q estoy creando la funcion de traducir como me dijiste asi q en cuanto la tenga t la subo a ver q te parece
y repito muchas gracias x la ayuda y x las explicaciones
un saludo
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
De nada, espero que no traigas las funciones que te deje todas cambiadas con errores xD Saludos
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
soy el edu
|
|
|
En línea
|
|
|
|
MaLkAvIaN_NeT
Desconectado
Mensajes: 213
MaLkAvIaN_NeT
|
puedes utilizar replace
|
|
|
En línea
|
a por las buenas ideas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con TextBox
« 1 2 »
Programación Visual Basic
|
kakinets
|
12
|
4,161
|
8 Octubre 2005, 19:33 pm
por noob_Setup
|
|
|
ayuda con list y textbox
Programación Visual Basic
|
dark_soul
|
2
|
1,645
|
26 Mayo 2006, 04:55 am
por Krnl64
|
|
|
tomar de un textbox, cambiar y pegar en otro textbox
Programación Visual Basic
|
Nakp
|
9
|
5,423
|
2 Septiembre 2006, 18:42 pm
por Nakp
|
|
|
Ayuda con textbox
Programación Visual Basic
|
mariana_87
|
2
|
1,788
|
19 Marzo 2009, 15:37 pm
por mariana_87
|
|
|
ayuda con textbox
Programación Visual Basic
|
mariana_87
|
2
|
1,840
|
23 Mayo 2009, 23:42 pm
por xkiz ™
|
|