Visual Basic - dos delimitadores para esplit

Life is soft - evento anual de software empresarial
 
Vista:

dos delimitadores para esplit

Publicado por elizabeth (5 intervenciones) el 02/10/2008 17:44:13
hola a todos les escribo para ver si alguien me puede ayudar
tengo el siguiente problema :

tengo un programa en visual el cual lee un texto delimitado el cual por pantalla le indico un delimitador para que me corte el texto hasta ahi todo bien , pero necesito ingresar por pantalla dos delimitadores para lo cual tengo dos textbox para ingresar los delimitadores el problema que cuando quiero que el split me tomo los dos delimitadores solo me toma uno
Dim delimitador As String ' pertenece al primer delimitador ingresado por pantalla
Dim delimitdor2 As String ' pertenece al segundo delimitador ingresado por pantalla

delimitador = Text2 ' aqui al delimitador se le asigna text2 que es por donde se introduce el delimitador por pantalla
'delimitador2 = Text4 ' esto lo tma pero no lo agrega a su analisis

inf = Text1 ' aqui se le pasan todos los datos de text1 a inf

strArray = Split(inf, delimitador) ' aqui se toma el arreglo completo y se aplica split
strArray =split(inf,delimitador2) esto lo toma pero no lo agrega a su analisis
'

ojala me puedan ayudar de ante mano gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:dos delimitadores para esplit

Publicado por CHIcho (80 intervenciones) el 02/10/2008 18:32:34
Hola, por lo que expones aqui deberia de andar bien, seguramente hay algun problema en otro lado, si quieres mandame el archivo con el codigo y te lo reviso.

Adios!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por ingeniero ramirez (34 intervenciones) el 02/10/2008 18:58:20
Porqué contestais sin saber lo que decís?

Parece que quiere meter en un array las palabras que están separadas por dos delimitadores
X ejem
hola*>no sabes lo que*>dices

Según su código, el primer array tendría
strArray(0) = " >hola"
strArayy(1) = ">no sabes lo que"
strArray(2) = ">dices"

Pero si pone Split(inf, "*>")
(Que es lo mismo que poner Split(inf, delimitador & delimitador2) obtendría:
strArray(0) = "hola"
strArray(1) = "no sabes lo que"
strArray(2) = "dices"

Y no hay ningún problema en otro lado.

Adios!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por Chicho (80 intervenciones) el 02/10/2008 19:47:54
Hola Sr. Ingeniero, si conteste es porque crei saber lo que respondia, de otra forma no lo hubiese hecho, te recomiendo que bajes un poquito los aires de superado, porque te va a ir mal en la vida, tendrias que ser un poco mas humilde y en vez de atacarme podrias explicarme donde estuvo mi error, porque precisamente para eso es el foro, mis intenciones fueron buenas, solo queria ayudar.
Igual gracias por hacerme saber de mi error, pero esa no es la forma correcta de hacerlo.

Ademas te comento que yo interprete la pregunta de otra forma, de ahi mi respuesta.

Saludas Chicho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por ingeniero ramirez (34 intervenciones) el 02/10/2008 20:01:56
Hola Sr. Chicho,
aquí nadie ha cuestionado si sus intenciones fueron buenas o no, lo que se ha indicado (para vos y otros como vos) es que si no entendeis la pregunta no respondais y menos que os lo envien a vuestro correo particular, esto no es un chat, sino un foro y todos queremos aprender.

Y no me recomendeis nada porque no tengo "aires de superado" y la vida me vá muy bien. ADG.

Otra cosa, la forma de hacer saber un error es precisamente, decir que se ha cometido el error, ¿o sabeis otra?

Saludos (en masculino) Ing. Ramirez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por y yo tambien (66 intervenciones) el 02/10/2008 21:27:34
Vaya forma de responder el ingeniero, me recuerda a otro de por acá que ya le dieron unas cuantas collejas.

Bueno, igual es el mismo que ya se licenció y se cambió de nombre!

Pues ten cuidadito ¿ Sr. Iingeniero de qué?, porque aquí cuando las damos, duelen!

Y sobre todo a los 'listillos' y prepotentes!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por igor (633 intervenciones) el 02/10/2008 21:36:40
Tu que hablas a todo el mundo igual, seguro que te ponen al principe felipe delante y le llamarías listillo, prepotente y g.i.l.i.p.o.l.l.i.n, que le vamos a hacer, yo que pensaba que lo hacías porque me querías. Que disgusto me he llevado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por y yo tambien (66 intervenciones) el 02/10/2008 21:41:34
Y te quiero, cariño!!

pero ya tengo otra pareja, en cuanto me canse de él (cosa que ocurre muy a menudo) me pongo en contacto contigo.

nota: no se quien es el principe felipe, pero si me lo presentas y está bueno, igual dejo a mi pareja y tu te quedas a la espera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por CHICho (80 intervenciones) el 02/10/2008 22:03:16
Hola de nuevo ingeniero.
Se perfectamente que esto no es un chat y me disculpo por usarlo como tal, pero lo hice y lo hago porque no me gusto para nada la forma en la que me conteste.
Te acloro que tu respuesta puede ser tomada para cualquiera como soberbia y llena de ironias, y si esa no fue tu intencion, quizas halla algun problema en la forma que utilizas para transmitir tus mensajes.

Y TE REPITO... si Yo conteste la pregunta es porque crei que sabia la respuesta, DE OTRA FORMA no lo hubiese hecho, esto quiere decir que A mi ENTENDER yo interprete bien la pregunta y por eso la respondi,creyendo saber la RESPUESTA, no puedo ser mas claro que esto. Vos me hiciste dar cuenta de que yo estaba equivocado, por lo cual te agradezcon mucho. Lo que se cuestiona aca es el modo que utilizaste.

Ademas creo que deberias darle mas importancia a las INTENCIONES, sobretodo en lugares como este, aveces una Buena intencion y es mejor que una respuesta.
No te olvides que yo tome un rato de mi tiempo para ayudar a alguien que necesitaba ayuda (Apesar de que, gracias a vos, descubri me encontraba en un error). De la misma forma agradeceria a cualquiera que se toma un ratito de su tiempo para contestar la preguntas que yo hago, esten o no en lo correcto, De cualquier forma el encargado de juzgar la respuesta soy yo, y no alguien que tambien responda, y si este ultimo juzga la una respuesta , estaria bueno que lo haga con humildad y pasiencia haciendo saber donde estuvo el error o los errores, porque sino esto seria un caos.

Ojala que te siga llendo bien en tu vida, y me alegro que tus metodos funcionen.

Me vuelvo a disculpar por no darle un uso correcto al foro.

Saludod Chicho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por elizabeth (5 intervenciones) el 02/10/2008 23:12:20
porfa alguien me puede ayudar ya que la respuesta del ingeniero no me sirvio del todo .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por Chicho (80 intervenciones) el 02/10/2008 23:17:11
Yo evidentemente no entiendo bien la pregunta, si me explicas mejor a lo mejor te puedo ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por ingeniero ramirez (34 intervenciones) el 03/10/2008 12:44:36
la respuesta del ingeniero no te sirvio del todo?

O te sirvió, o no te sirvió! No servir del todo significa servir a medias, y eso en programación no vale, O SIRVE O NO SIRVE!!

¿Cual es el problema?

¿Puedes mostrar el código que pones, (con un ejemplo del valor de la variable "inf" y de los "delimitadores")?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por elizabeth (5 intervenciones) el 03/10/2008 20:51:40
Dim inf As String ' a inf se le pasan todos los datos del textbox 1
Dim strArray() As String ' es el arreglo
Dim intCount As Integer
Dim delimitador As String ' pertenece al primer delimitador ingresado por pantalla
Dim delimitdor2 As String ' pertenece al segundo delimitador ingresado por pantalla
Dim delimitador3 As String
Dim a As Integer

delimitador = Text2 ' aqui al delimitador se le asigna text2 que es por donde se introduce el delimitador por pantalla
delimitador2 = Text4

inf = Text1 ' aqui se le pasan todos los datos de text1 a inf

strArray = Split(inf, delimitador) ' aqui se toma el arreglo completo y se aplica split para cortar la cadena a split se le asigna la inf que guarda todo lo que esta en text1 y luego se le pasa el delimitador
strArray = Split(inf, delimitador2)

List1.Clear
For intCount = LBound(strArray) To UBound(strArray) 'ubound Devuelve el mayor subíndice disponible para la dimensión indicada de una matriz
'Devuelve el menor subíndice disponible para la dimensión indicada de una matriz.

List1.AddItem strArray(intCount) ' a list1 se le asign el arreglo para mostrar los subindices disponibles
Next


// el delimitador2 ingresado por pantalla no me lo respeta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por ingeniero ramirez (34 intervenciones) el 03/10/2008 21:42:09
A ver si vamos aclarando cosas:

Tu tienes en un TextBox (text1) una cadena que dice:
Esto es:=una:=pedorrada

y en el Text2 se escribe ":" (dos puntos)
y en el text4 se escribe "=" (signo igual)

y quieres que el array devuelva:
a(0) = Esto es
a(1) = una
a(2) = pedorrada

Pues me remito a mi primera respuesta.

Y otra cosa, no sé dónde estudiaste tú programación, pero una regla de las más básicas que me enseñaron en el 'cole' es 'Optiminación del código' que dice:
1ª regla: No declarar variables innecesarias

El código que pones se puede resumir en esto:

Dim strArray() As String
Dim intCount As Integer
strArray = Split(Text1, Text2 & Text4)
List1.Clear
For intCount = LBound(strArray) To UBound(strArray)
List1.AddItem strArray(intCount)
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por elizabeth (5 intervenciones) el 03/10/2008 22:10:43
bueno te respondo no he estudiado en ninguna parte programacion lo poco que se lo he a prendido sola tengo resien 20 años y esto estudiando administracion de bases de datos con sql promer año ok. gracias por tu respuesta .

si participas en el foro para ayudar a resolver preguntas no seas tan arrogante ya que no todos tienen la misma experiencia en el tema ya que si la tubieran no existirian los foros de consultas .
si participas ayudando a resolver preguntas haslo con umildad y tus respuesta seran mucho mas agradecidas .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dos delimitadores para esplit

Publicado por ingeniero ramirez (34 intervenciones) el 03/10/2008 22:28:52
Pero bueno... si respondí con 'umildad' sólo fué una pregunta sin importancia.

y entiendo lo de la diferencia de edad, ya que sola tengo resien 26 años y esto estudiando para hacer un master de ingeniería de sistemas informáticos.

pero esto ya son cosas personales que si quieres las hablamos de bis a bis.

la cuestión es si solucionaste tu problema o no.

Saludos cordiales elizabeth de carlos ramirez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Es lo que hay

Publicado por igor (633 intervenciones) el 03/10/2008 23:38:26
Amigo Ramirez, yo sola tengo 31 años, y estoy de acuerdo en que sería mejor que los que preguntan fueran un poco más humildes y más agradecidos.

La amiga Elizabeth tiene un mundo por descubrir, pero debe pensar que tiene todo controlado porque en su código nos habla de lo que significa lbound y ubound. Será que nosotros no entendemos.

Nadie tiene que avergonzarse de lo que sabe, sea poco o mucho. Yo estoy aquí para enseñar, pero para eso tiene que haber gente que quiera aprender.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es lo que hay

Publicado por ingeniero ramirez (34 intervenciones) el 05/10/2008 12:01:50
Ya, pero al final nos quedamos sin saber si se le solucionó el problema!

En fin...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es lo que hay

Publicado por pacopaz (173 intervenciones) el 06/10/2008 21:28:49
Y yo que tengo 32 años sé que no estoy para enseñar (ojalá que nunca) y si para aprender de todos ustedes, incluso de aquellos que preguntan y tratar de compartir mi experiencia con todos. Sin embargo, no pretendo ser o parecer humilde, sino contestar de la mejor forma posible, o por lo menos, la mejor forma que conozca.
Y al respecto del problema, no tendría caso definir dos textbox si no quisieras hacer dos separaciones ajenas. Esto es: Si los supuestos de las personas que han contestado son correctos, no hace falta el segundo textbox, toda vez que en uno solo puedes poner los dos caracteres.
Sin embargo, haciendo caso a mis habilidades de vidente, creo que lo que Elizabeth quiere es hacer que un texto sea separado hasta por dos delimitadores en lugares distintos. Siendo así, estoy seguro de que la solución propuesta no funcionaría.
La solución general, para ambos casos es la siguiente:

Dim arr1, arr2 As Variant
Dim i, j As Integer

arr1 = Split(Text1.Text, Text2.Text) 'hace la descomposición por el primer caracter
For i = 0 To UBound(arr1) 'recorre el primer arreglo
If Not IsEmpty(arr2) Then arr2 = Empty 'inicializa el segundo arreglo
arr2 = Split(CStr(arr1(i)), Text3.Text) 'descompone por el segundo caracter
For j = 0 To UBound(arr2) 'recorre el segundo arreglo
If Len(CStr(arr2(j))) > 0 Then 'valida por si los separadores estaban juntos
List1.AddItem (CStr(arr2(j))) 'inserta el item
End If
Next j
Next i

Si aún la ocupas, Elizabeth, espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es lo que hay

Publicado por elizabeth (5 intervenciones) el 09/10/2008 22:45:07
muchas gracias pacopaz eso si que me sirvio esa era la respuesta correcta a mi pregunta te pasaste muchas gracias .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar