Autor
|
Tema: Ayuda! Separadores en un textbox (Leído 21,290 veces)
|
birdez
Desconectado
Mensajes: 114
|
Hola buenas tardes a todos
Necesito saber como puedo detectar los espacios, comas, puntos, puntos apartes, ..... en un textbox ya que estoy realizando un traductor y solo consigo que me detecte palabras sueltas y las traduzca a otro textbox :S , en cuanto le pongo un separador no hace nada y era x si alguien me podría ayudar en este aspecto
muchas gracias a todos un saludo!
|
|
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
Para detectar caracteres tipo coma, punto, espacio, punto y coma.. lo haría con expresiones regulares. Pero como no las domino, lo hago inicializando una Matriz que contendrá los Separadores. Una Matriz no es más que la colección de datos de un mismo tipo, separados u ordenados por índices. Aquí te dejo el código, me funciona de madre ^^ Private Sub Listar_Separadores(Byval Texto As String) Dim Separadores() As Char = ";,. -_\/<>" 'Inicializamos la Matriz añadiendole varios Separadores, Puedes AÑADIR más Dim Palabra As String = "ehnrules;" ' Deberias poner la variable Texto (yo aqui puse un ejemplo simplemente para probar que funcionaba) For i As Int32 = 0 To Separadores.Length - 1 For j As Int32 = 0 To Palabra.Length - 1 If Separadores(i) = Palabra.Substring(j, 1) Then MsgBox("Se encontró un separador: " & Separadores(i)) End If Next Next End Sub
Saludos.
|
|
|
En línea
|
|
|
|
birdez
Desconectado
Mensajes: 114
|
gracias por el codigo pro yo lo que necesito es que vaya leyendo la palabra y al encontrar un separador detecte q es uno de esos y lo interprete cn forme es un espacio, por ejemplo, y siga leyendo la sieguiente palabra para traducirla
sabes lo q quiero decirte? sq alomejor no me explico bn y es x mi culpa q no entiendas bn lo q quiero decir xD
|
|
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
El código que te adjunte básicamente lista todos los Separadores encontrados en una palabra. Tu lo que quieres es identificar separadores para luego borrarlos y traducir la palabra sin los separadores. Bueno, piensa un poquito en como hacerlo y como adaptar el código Saludos.
|
|
|
En línea
|
|
|
|
birdez
Desconectado
Mensajes: 114
|
si algo asi yo lo q quiero es que me identifique solamente las palabras y no los separadores lo q pasa q no se me ocurre ninguna forma de hacerlo xq mi duda es como ago para eliminar ese separador y q luego al pasar la traduccion de la frase al segundo textbox me vuelva a poner los separadores que elimine anteriormente y me los coleque cada uno en su sitio xD
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Este codigo que hice el año pasado te sirve para lo que queres hacer... Es para vb6 pero creo que es 100% compatible con VBNET Se llama "MultiSplit" HOLA!!! Hoy queria hacer un split que devuelva un array con varios delimitadores y aparte tenga la opcion de guardar el delimitador... en fin... hice esta funcion, espero que les sirva. Antes que el codigo Ejemplo: Private Sub Ejemplo() Dim dels(3) As String Dim result() As String Const ss As String = "hola+como--andas(((esto====es+una--prueba" dels(0) = "+" dels(1) = "--" dels(2) = "(((" dels(3) = "====" 'sin preservar delimitadores result = MultiSplit7913(ss, dels, False) 'result = ("hola";"como";"andas";"esto";"es";"una";"prueba") 'preservando delimitadores result = MultiSplit7913(ss, dels, True) 'result = ("hola";"+como";"--andas";"(((esto";"====es";"+una";"--prueba") End Sub
El Codigo Private Function MultiSplit7913(expression As String, Delimiter() As String, PreserveDel As Boolean) As String() Dim DelCount As Long Dim lExp As Long Dim X As Long Dim Pos As Long Dim DelPos() As Long Dim AuxArr() As String Dim LastPos As Long Dim LastLen As Long Dim LastInstr As Long expression = expression & Delimiter(0) lExp = Len(expression) DelCount = UBound(Delimiter) ReDim DelPos(lExp) For X = 0 To DelCount Pos = 1 LastInstr = InStr(Pos, expression, Delimiter(X)) Do While LastInstr <> 0 DelPos(LastInstr) = X + 1 Pos = LastInstr + Len(Delimiter(X)) + Pos LastInstr = InStr(Pos, expression, Delimiter(X)) Loop Next ReDim AuxArr(0) LastPos = 1 For X = 0 To lExp If DelPos(X) <> 0 Then ReDim Preserve AuxArr(UBound(AuxArr) + 1) If PreserveDel Then AuxArr(UBound(AuxArr) - 1) = Mid$(expression, LastPos, X - LastPos) Else AuxArr(UBound(AuxArr) - 1) = Mid$(expression, LastPos + LastLen, X - LastPos - LastLen) LastLen = Len(Delimiter(DelPos(X) - 1)) End If LastPos = X End If Next ReDim Preserve AuxArr(UBound(AuxArr) - 1) MultiSplit7913 = AuxArr End Function
GRACIAS POR LEER!!! GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
birdez
Desconectado
Mensajes: 114
|
:S
no entiendo la mayoria de las cosas que aparecen ahi jajajajaja
muchas gracias por paasarmelo pro no entiendo mucho la verdad mirare a ver si consigo comprender algo pro ya te digo q la mayoria de cosas no me suenan jajajaja
si quereis os paso el codigo que tengo asi mas o menos os podeis imaginar como tengo montado el "traductor" este jajajajaja
gracias a todos de nuevo x la ayuda
|
|
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
Postea una parte del código, así vemos como interpretas cada cosa, como la plasmas y si hay algun error de código.
@79137913: Tu código extrae los Separadores y los borra, no? Si le echas un vistazo al code que adjunté comprobaras que lista cada separador. Sólo faltaría añadirle que borrara el separador extraído, cosa que no ocupa más que una linea xD
P.D=No es recomendable emplear sintaxis de VB6 en .NET
Saludos.
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!!
@Kub0x: No, mi codigo no extrae los Separadores y los borra...
Mi codigo lo que hace es tomar un string cualquiera y seararlo por los separadores colocados en el array "Delimiter()" y vuelca todos los items resultantes en un nuevo array (resultado de la funcion).
Si sabes lo que hace la funcion Split, lo vas a entender, sino no.
Testeala y lee bien el ejemplo.
Y por que no es recomendable? ... Utilizo funciones fuera del framework, osea mejor!
GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
kub0x
Enlightenment Seeker
Moderador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
@79137913: En un principio no lei tu code completamente. Lo que creo que hace es separar cada palabra de otra añadiendole un separador, formando una cadena con el siguiente formato (ejemplo): Palabra;Palabra2;Palabra3; Funciona de esta forma?
No es recomendable dicha combinación por el hecho de que .NET es la evolucion de VB6 y trabaja con el Framework de .NET , el cual ofrece infinidad de clases para trabajar dentro del lenguaje, cosa que VB6 no contiene. Si vas a emplear sintaxis de VB6 en .NET , mejor que agarres VB6 xD (ironic mode). No, pero por ahí escuché críticas de algunos métodos de VB6 que están obsoletos en .NET
Saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con TextBox
« 1 2 »
Programación Visual Basic
|
kakinets
|
12
|
4,186
|
8 Octubre 2005, 19:33 pm
por noob_Setup
|
|
|
ayuda con list y textbox
Programación Visual Basic
|
dark_soul
|
2
|
1,656
|
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,457
|
2 Septiembre 2006, 18:42 pm
por Nakp
|
|
|
Ayuda con textbox
Programación Visual Basic
|
mariana_87
|
2
|
1,796
|
19 Marzo 2009, 15:37 pm
por mariana_87
|
|
|
ayuda con textbox
Programación Visual Basic
|
mariana_87
|
2
|
1,844
|
23 Mayo 2009, 23:42 pm
por xkiz ™
|
|