elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Se podra?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Se podra?  (Leído 3,669 veces)
Erika Vega

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Se podra?
« en: 24 Febrero 2009, 23:53 pm »

Un problema mas que tengo chicos, Lo que deseo es saber si se puede realizar lo siguiente en visual basic.

por ejemplo:

en un archivo de texto tengo lineas como esta

Citar
usuario = felipito  ;Nombre de usuario
password = 1234  ;password del usuario
rango = 3  ;Rango de usuario: 1= admin, 2=normal, 3=mod
...
...
...

Si se dan cuenta los comentarios se definen a partir del "punto y coma"

Lo que deseo es colocar en un listview estos datos por separados de manera ordenada

Citar
[liNEA] [TAG] = [ATRIBUTO]  [; COMENTARIO]

Código
  1. Set subs = ListView1.ListItems.Add(, , LINEA)
  2.          subs.SubItems(1) = TAG
  3.          subs.SubItems(2) = ATRIBUTO
  4.          subs.SubItems(2) = COMENTARIO
  5.  
Se como agregar los datos al listview, pero no logro separarlos y colocarlos como quiero.


 


En línea

el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: Se podra?
« Respuesta #1 en: 25 Febrero 2009, 00:09 am »

lo arreglas con split:
Código
  1. Dim strItems1() as String
  2. Dim strItems2() as String
  3. strItems1= split(strLinea, "=") '0=tag
  4. strItems2 = split(strItems1(1), ";") '0=contenido, 1=comentario
  5.  

saludos


En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
Erika Vega

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Re: Se podra?
« Respuesta #2 en: 25 Febrero 2009, 06:59 am »

lo arreglas con split:
Código
  1. Dim strItems1() as String
  2. Dim strItems2() as String
  3. strItems1= split(strLinea, "=") '0=tag
  4. strItems2 = split(strItems1(1), ";") '0=contenido, 1=comentario
  5.  

saludos
esta muy bien pero me sale el tipico error que el indice esta fuera del intervalo.
En línea

vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Re: Se podra?
« Respuesta #3 en: 25 Febrero 2009, 15:48 pm »

postea una parte del codigo..
o asi tal cual es como lo pusiste??
si lo pusiste asi el error es xq no lo metiste en ningun evento :S
En línea

Erika Vega

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Re: Se podra?
« Respuesta #4 en: 25 Febrero 2009, 16:06 pm »

Código
  1. Dim Linea As String
  2. Dim item As ListItem
  3. Dim spt1() As String
  4. Dim spt2() As String
  5. Dim i As Integer
  6.  
  7.    PathArchivo = App.Path & "\datos.txt"
  8.    Open PathArchivo For Input As #1
  9.  
  10.    While Not EOF(1)
  11.    Line Input #1, Linea
  12.  
  13.    spt1 = Split(Linea, ";")
  14.    spt2 = Split(spt1(0), "=")
  15.  
  16.    Set item = ListView.ListItems.Add(, , spt2(0))
  17.        item.SubItems(1) = spt2(1)
  18.     Wend
  19.    Close
  20.  
  21. Exit Sub
  22. errsub:
  23. MsgBox Err.Description, vbCritical

Ahi esta, haber si me das una manito
En línea

byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: Se podra?
« Respuesta #5 en: 25 Febrero 2009, 19:47 pm »

existen muchas maneras de cargar un texto en un listview de forma ordenada:
Código
  1. Sub abre_lista()
  2.  
  3. Dim itm As ListItem
  4. Dim a, b, c As String
  5.    Open App.Path & "\Data.txt" For Input As #1
  6.    Do Until EOF(2)
  7.    Input #1, a, b, c
  8.              Set itm = lv1.ListItems.Add(, , a)
  9.              itm.SubItems(1) = b
  10.              itm.SubItems(2) = c
  11.    Loop
  12.    Close #1
  13.  
  14. End Sub

y claro las lineas del texto deben de estar separados :

Código:
"usuario","password","rango"

espero te sirva... ;D

saludos.

edit: los datos solo eran 3 .. puse para 4 anteriormente... ya esta corregido  ;D ;D
« Última modificación: 25 Febrero 2009, 20:02 pm por byway » En línea

Erika Vega

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Re: Se podra?
« Respuesta #6 en: 25 Febrero 2009, 20:53 pm »

existen muchas maneras de cargar un texto en un listview de forma ordenada:
Código
  1. Sub abre_lista()
  2.  
  3. Dim itm As ListItem
  4. Dim a, b, c As String
  5.    Open App.Path & "\Data.txt" For Input As #1
  6.    Do Until EOF(2)
  7.    Input #1, a, b, c
  8.              Set itm = lv1.ListItems.Add(, , a)
  9.              itm.SubItems(1) = b
  10.              itm.SubItems(2) = c
  11.    Loop
  12.    Close #1
  13.  
  14. End Sub

y claro las lineas del texto deben de estar separados :

Código:
"usuario","password","rango"

espero te sirva... ;D

saludos.

edit: los datos solo eran 3 .. puse para 4 anteriormente... ya esta corregido  ;D ;D

Muy bien, pero el archivo de texto es como dije anteriormente:

Citar
LLAVE=VALOR ;COMENTARIO

Si lo pudiera separar todos con comas funcionaria, pero como digo no puedo cambiar la estructura del txt.



En línea

‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Se podra?
« Respuesta #7 en: 25 Febrero 2009, 21:24 pm »

como no se va a poder, es muy facil hacer lo que pides; VB es mucho mas pontente de lo que creees....

tu te encargas de que se abra el archivo leyendo linea a linea (mira los posts anteriores, por alli esta), y esto se va guardando en la variable: linea ... y se obtienen todos los valores
Código
  1. Dim Llave, Valor, Comentario As String
  2. Dim linea As String
  3.  
  4. linea = "Path=C:\WINDOWS;Ruta de Windows"
  5.  
  6. Llave = Trim(Mid(linea, 1, InStr(1, linea, "=") - 1))
  7. Valor = Trim(Mid(linea, InStr(1, linea, "=") + 1, InStr(1, linea, ";") - InStr(1, linea, "=") - 1))
  8. Comentario = Trim(Mid(linea, InStr(1, linea, ";") + 1))
  9.  
  10. MsgBox Llave
  11. MsgBox Valor
  12. MsgBox Comentario
  13.  
En línea

Erika Vega

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Re: Se podra?
« Respuesta #8 en: 25 Febrero 2009, 22:31 pm »

Esta muy bien, pero mi problema no es separarlos sino meterlos al listview, tu metodo es muy bueno pero ocasiona un error a la hora de tratar de meterlos al listview.

De todas formas gracias por el codigo, los separa bien si lo muestras en un mensaje pero para el listview no funciona.

Código
  1. PathArchivo = CD1.FileName
  2.  
  3.    Open PathArchivo For Input As #1
  4.  
  5.    While Not EOF(1)
  6.    Line Input #1, linea
  7.  
  8.   llave = Trim(Mid(linea, 1, InStr(1, linea, "=") - 1))
  9.   valor = Trim(Mid(linea, InStr(1, linea, "=") + 1, InStr(1, linea, ";") - InStr(1, linea, "=") - 1))
  10.   comentario = Trim(Mid(linea, InStr(1, linea, ";") + 1))
  11.  
  12.    Set item = ListView.ListItems.Add(, , llave)
  13.        item.SubItems(1) = valor
  14.        item.SubItems(2) = comentario
  15.  
  16.    Wend
  17.    Close #1
« Última modificación: 25 Febrero 2009, 22:53 pm por Erika Vega » En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Se podra?
« Respuesta #9 en: 26 Febrero 2009, 00:01 am »


Muy bien, pero el archivo de texto es como dije anteriormente:

Citar
LLAVE=VALOR ;COMENTARIO

Si lo pudiera separar todos con comas funcionaria, pero como digo no puedo cambiar la estructura del txt.


No cambies la extructura del txt,  crea una cadena con el txt y modificala

Código:

Dim cadena$: cadena = "usuario = felipito  ;Nombre de usuario" + vbNewLine + "password = 1234  ;password del usuario" + vbNewLine + "rango = 3  ;Rango de usuario: 1= admin, 2=normal, 3=mod"

MsgBox cadena

cadena = Replace(cadena, "usuario =", "usuario ,")
cadena = Replace(cadena, "password =", "password ,")
cadena = Replace(cadena, "rango =", "rango ,")
cadena = Replace(cadena, ";", ",")
cadena = Replace(cadena, "1= admin, 2=normal, 3=mod", "1= admin  2=normal  3=mod")
MsgBox cadena


Saludos



« Última modificación: 26 Febrero 2009, 00:58 am por Dessa » En línea

Adrian Desanti
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
se podra?
PHP
Zhuikov 3 1,544 Último mensaje 11 Marzo 2013, 20:43 pm
por z3nth10n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines