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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Tuto-Como cargar un listview desde un archivo .txt en visualbasic
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tuto-Como cargar un listview desde un archivo .txt en visualbasic  (Leído 12,181 veces)
Christian010

Desconectado Desconectado

Mensajes: 64


Ver Perfil WWW
Tuto-Como cargar un listview desde un archivo .txt en visualbasic
« en: 15 Noviembre 2008, 02:31 am »

Bueno aqui les tengo un tuto para cargar un listview desde visualbasic.net,  y guardarlo.

Utilizaremos Microsoft Visual Basic 2008

Primero abrimos un nuevo proyecto y agregamos 2 botones y un listview

Propiedades: listiview con gridlines en true,view en detalis, y agregamos 2 columnas

al final queda asi:



ahora el codigo para cargar el listview, este cargara 2 archivos de texto que se encuentren en la misma carpeta que la app el primero lo llamaremos primero y sera el que se agregue en la primera columna el otro lo llamaremos segundo y sera el que se cargue en la segunda columna.

el programa leera linea por linea el archivo y por cada linea agregara un item al listview

Código:
   'la declaramos como un sub para poder llamarla despues facilmente
    Sub leer()
        'comprobamos que existen los arcivos de texto
        If My.Computer.FileSystem.FileExists(Application.StartupPath + "/primera.txt") And My.Computer.FileSystem.FileExists(Application.StartupPath + "/segunda.txt") Then
            'borramos el listview por seguridad
            ListView1.Items.Clear()
            'empezamos a leer
            Dim sr As New System.IO.StreamReader( _
    Application.StartupPath + "/primera.txt", _
    System.Text.Encoding.Default, _
    True)
            ' Leer el contenido mientras no se llegue al final
            While sr.Peek() <> -1
                ' Leer una líena del archivo
                Dim s As String = sr.ReadLine()
                ' Si no está vacía, añadirla al listview
                ' Si está vacía, continuar
                If String.IsNullOrEmpty(s) Then
                    Continue While
                End If
                'añadirla al listview
                ListView1.Items.Add(s)
            End While
            ' Cerrar el archivo
            sr.Close()
            'abrimos el segundo archivo
            Dim sd As New System.IO.StreamReader( _
       Application.StartupPath + "/segunda.txt", _
       System.Text.Encoding.Default, _
       True)
            ' Leer el contenido mientras no se llegue al final
            While sd.Peek() <> -1
                'Creamos un bucle algo complicado para poner el subitem
                Dim na As Integer
                na = 0
                Dim laItem As ListViewItem
                Dim a As Integer
                For a = 1 To ListView1.Items.Count
                    If na = ListView1.Items.Count Then
                    Else
                        For Each laItem In ListView1.Items
                            'Leer una líena del archivo
                            Dim s As String
                            s = sd.ReadLine
                            ' Si no está vacía, añadirla al listview
                            ' Si está vacía, continuar
                            If String.IsNullOrEmpty(s) Then
                                Continue While
                            End If
                            'añadirla al listview
                            ListView1.Items(na).SubItems.Add(s)
                            na = na + 1
                        Next
                    End If
                Next
            End While
            sd.Close()
            'ordenamos los datos
            ListView1.Sort()
        Else
            MsgBox("No se encontro la base de datos, se cargara con las tablas vacias", MsgBoxStyle.Critical, "Error")
            ListView1.Items.Clear()
            'aqui va el mensaje de error si no se encuentra los archivos de texto
        End If

y para llamar la instruccion solo hace falta escribir
Código:
leer()
en el codigo, si queremos que cargue al presionar el boton seria

Código:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        leer()
    End Sub

y ya con esto la aplicacion carga los datos



ahora lo segundo, guardar los datos

Código:
    Sub guardar()
        'borramos la base de datos antigua
        If My.Computer.FileSystem.FileExists(Application.StartupPath + "/primera.txt") Then My.Computer.FileSystem.DeleteFile(Application.StartupPath + "/primera.txt")
        'hacemos un bucle para obtener los datos de la primer columna
        Dim nu As Integer
        nu = 0
        Dim loItem As ListViewItem
        Dim i As Integer
        For i = 1 To ListView1.Items.Count
            If nu = ListView1.Items.Count Then
            Else
                For Each loItem In ListView1.Items
                    'guardamos la nueva base de datos
                    My.Computer.FileSystem.WriteAllText(Application.StartupPath + "/primera.txt", ListView1.Items(nu).Text + vbCrLf, True)
                    nu = nu + 1
                Next
            End If
        Next
        'borramos la segunda
        If My.Computer.FileSystem.FileExists(Application.StartupPath + "/segunda.txt") Then My.Computer.FileSystem.DeleteFile(Application.StartupPath + "/segunda.txt")
        'hacemos de nuevo un bucle
        Dim na As Integer
        na = 0
        Dim laItem As ListViewItem
        Dim a As Integer
        For a = 1 To ListView1.Items.Count
            If na = ListView1.Items.Count Then
            Else
                For Each laItem In ListView1.Items
                    'lo guardamos
                    My.Computer.FileSystem.WriteAllText(Application.StartupPath + "/segunda.txt", ListView1.Items(na).SubItems(1).Text + vbCrLf, True)
                    na = na + 1
                Next
            End If
        Next
    End Sub

y al igual que con el otro lo podemos llamar como guardar ()

en el boton seria

Código:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        guardar()
    End Sub

y ya con eso queda, este codigo se puede usar en varios proyectos

solo le hace falta como modificar los datos  ;D pero eso es facil de hacer

les dejo el proyecto ya compilado

http://www.badongo.com/file/12099321

salu2  ;D


En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Tuto-Como cargar un listview desde un archivo .txt en visualbasic
« Respuesta #1 en: 15 Noviembre 2008, 07:13 am »

Son demasiadas líneas de código para la función que realiza, la lectura y llenado del listview se puede hacer a más en dos líneas de código usando Add de ListView y ReadAllText de FileSystem. Al margen de muchas otras mejoras.


En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Christian010

Desconectado Desconectado

Mensajes: 64


Ver Perfil WWW
Re: Tuto-Como cargar un listview desde un archivo .txt en visualbasic
« Respuesta #2 en: 15 Noviembre 2008, 13:17 pm »

Son demasiadas líneas de código para la función que realiza, la lectura y llenado del listview se puede hacer a más en dos líneas de código usando Add de ListView y ReadAllText de FileSystem. Al margen de muchas otras mejoras.

lo que sucede es que con readalltext se cargan todos los datos en una sola columna y con este codigo se cargan un dato por cada linea por ejemplo si el archivo de texto tiene escrito:

hola
adios
hola

el programa lo añadiria asi:



aunque si sabes como hacerlo de una forma mas facil puedes postear el code

salu2   :D
En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Tuto-Como cargar un listview desde un archivo .txt en visualbasic
« Respuesta #3 en: 15 Noviembre 2008, 16:05 pm »

Lo siento me equivoque al escribir  ;D
En mi caso lo haria asi:
Código:
Imports System
Imports System.IO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim yo As String() = File.ReadAllLines("C:\1.txt")
        For Each ver As String In yo
            ListView1.Items.Add(ver)
        Next

    End Sub
End Class

Igualmente se puede implementar AddRange para acortar el código.
« Última modificación: 15 Noviembre 2008, 16:20 pm por 43H4FH44H45H4CH49H56H45H » En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Tuto-Como cargar un listview desde un archivo .txt en visualbasic
« Respuesta #4 en: 15 Noviembre 2008, 17:10 pm »

Hola, ahora voy a probar..pero con un Split y un array que guarde cada linea (ya sean 2 o 50 columnas) te lo tiene que cargar...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines