Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Snort en 12 Noviembre 2006, 21:42 pm



Título: Crear una lista a partir de un texto
Publicado por: Snort en 12 Noviembre 2006, 21:42 pm
   Wenas a todos, pues vereis esqe necesito saber si se pueden meter los datos de un textbox en un listbox o listview, me explico, por ejemplo por ejemplo el text1.text es azul|*|rojo|*|amarillo|*|verde|*|rosa|*|negro|*|..., y qiero qe al pulsar el command1, se cree nu listbox con cada uno como list.text:
azul
rojo
amarillo
verde
...

   Supongo qe esto si qe se podra hacer, pero para complicarlo    aun mas tambien necesito (aparte) hacer lo mismo con dos datos en un list view, por ejemplo, el text1.text es azul|*|carlos\?\rojo|*|eva\?\verdel|*|juan\?\amarillo|*|jose\?\
y al pulsar command1, en el listview tendria qe qedar:

COLOR(Index0)                       NOMBRE(Index1)

azul                                        carlos
rojo                                        eva
verde                                      juan
amarillo                                   jose

   Bueno, espero qe me hallais entendido, si alguien me puede explicar como se podria hacer esto, muchiisimas gracias por adelantado

               Saludos


Título: Re: Crear una lista a partir de un texto
Publicado por: Gorky en 12 Noviembre 2006, 22:05 pm
Si te digo la verdad me extraña mucho que TU preguntes esto. Llevas bastante tiempo aqui y se me hace raro que no sepas como leer un archivo de texto y como meterlo en un listbox.

Y si es cierto que no lo sabes pues busca en el foro que se ha respondido mil veces.


Título: Re: Crear una lista a partir de un texto
Publicado por: CeLaYa en 13 Noviembre 2006, 19:37 pm
creo que ya muchas veces se ha dicho de funciones para manipular texto, pero hay te va una pista, deberias hacer un ciclo para recorrer todo el textbox (for, do while...etc) y usar instrucciones para separar el texto (mid, Right, Left, InStr) que quieres poner en el ListView, es muy sencillo.

ej

Dim j As Integer
Dim T As String

T = "renglón1|renglón2|renglón3|renglón4|renglón5"
i = 1
While i <= Len(T)
   
    j = InStr(1, T, "|", vbTextCompare)
    If j = 0 Then j = Len(T) + 1
    MsgBox Mid(T, i, j - 1)
    T = Mid(T, j + 1, Len(T))

Wend


Título: Re: Crear una lista a partir de un texto
Publicado por: Snort en 14 Noviembre 2006, 16:49 pm
   OK, gracias CeLaYa, el codigo va de lujo, voi a buscar lo del listview


Título: Re: Crear una lista a partir de un texto
Publicado por: CeLaYa en 14 Noviembre 2006, 22:12 pm
para lo del listview solo tienes que ir agregando items


Dim j As Integer
Dim T As String

T = "renglón1|renglón2|renglón3|renglón4|renglón5"
i = 1
While i <= Len(T)
   
    j = InStr(1, T, "|", vbTextCompare)
    If j = 0 Then j = Len(T) + 1
    ListView1.ListItems.Add ,, Mid(T, i, j - 1)
    T = Mid(T, j + 1, Len(T))

Wend


Título: Re: Crear una lista a partir de un texto
Publicado por: Snort en 16 Noviembre 2006, 16:12 pm
   Gracias, pero lo qe decia era usando dos columnas  y dos separadores en el texto por ejemplo Francia|Paris*España|Madrid*Italia|Roma*... y qe vayan listandose parejos en dos columnas. Ahora mismo no tengo tiempo pero ya me pondre y os digo...
Gracias CeLaYa


Título: Re: Crear una lista a partir de un texto
Publicado por: CeLaYa en 16 Noviembre 2006, 19:00 pm
creo que lo que estas buscando puede estar aqui:

http://foro.elhacker.net/index.php/topic,143992.0.html


Título: Re: Crear una lista a partir de un texto
Publicado por: Snort en 19 Noviembre 2006, 11:05 am
   Gracias CeLaYa, ya tengo todo lo qe buscaba, al final el codigo lo he sacado a partir del primero qe posteastes, ha qedao asi, por si a alguien le interesa...
Código:
Option Explicit
Private Sub form_load()
Dim J As Integer
Dim T As String
Dim N As Integer
T = "españa|madrid|italia|roma|francia|paris|grecia|atenas|holanda|amsterdam"
N = 1
Dim X As ListItem
While N <= Len(T)
    J = InStr(1, T, "|", vbTextCompare)
    If J = 0 Then J = Len(T) + 1
    Set X = ListView1.ListItems.Add(, , Mid(T, N, J - 1))
    T = Mid(T, J + 1, Len(T))
    J = InStr(1, T, "|", vbTextCompare)
    If J = 0 Then J = Len(T) + 1
    X.SubItems(1) = (Mid(T, N, J - 1))
    T = Mid(T, J + 1, Len(T))
Wend
End Sub
Y si se poenen mas columnas solo hay qe repetir la ultima mitad del while...wend

Saludos