Autor
Tema: Guardar listview en archivo (Leído 19,871 veces)
SγиtαxEяяoя
Desconectado
Mensajes: 154
Hola foro, estoy intentado hacer un programa que guarde mis contraseñas "Soy algo olvidadizo"
El
- Necesito que aqui se guarden todos los cambios y que al abrir el programa los datos sigan hay guardados y cargados
Edito: Estoy atascado en esta parte Quiero que al editar los nombres, contraseñas o el sitio web este lo guarde automaticamente, y al abrir el programa cargan los mismos datos que deje ya antes
Dim saveFileDialog1 As New SaveFileDialog( )
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog ( ) = DialogResult.OK Then
Using sw As New IO.StreamWriter ( saveFileDialog1.FileName , False )
'write each row of the ListView out to a tab-delimited line in a file
For i As Integer = 0 To Me .ListView1 .Items .Count - 1
sw.WriteLine ( ( ( ListView1.Items ( i) .Text & vbTab) + ListView1.Items ( i) .SubItems ( 0 ) .ToString ( ) & vbTab) + ListView1.Items ( i) .SubItems ( 1 ) .ToString ( ) )
Next
End Using
End If
« Última modificación: 19 Julio 2013, 17:55 pm por SγиtαxEяяoя »
En línea
El Benjo
Bueno, la intención de tu aplicación es muy clara, vamos primero con el procedimiento de guardado.
Primero abrir un archivo predeterminado para el guardado de los campos. Recorrer mediante un for los items en la lista y guardar sus subitems. Cerrar el archivo abierto. Dim Contador As Integer
FileSystem.FileOpen ( 1 , "Nombre del archivo.extension" , OpenMode.Output )
For Contador = 0 To ListView1.Items .Count - 1
FileSystem.PrintLine ( 1 , ListView1.Items ( Contador) .SubItems ( 0 ) )
FileSystem.PrintLine ( 1 , ListView1.Items ( Contador) .SubItems ( 1 ) )
FileSystem.PrintLine ( 1 , ListView1.Items ( Contador) .SubItems ( 2 ) )
Next
FileSystem.FileClose ( 1 )
He detectado un error en tu código actual, la matriz "Añadir" se declara con 4 campos en vez de tres necesitas Declararla como "Dim Añadir(2) As String".
Ahora vamos con el código para eliminar los items. Aquí simplemente necesitas hacer uso de la propiedad ListView1.SelectedItems() y el método Remove() mediante otro For.
Con la opción de edición necesitarías hacerlo mediante un form que obtenga los valores de los subitems y los añada a unos campos de texto en el form, donde al cerrar el form se guarden los cambios.
Y para la opción de abrir la página necesitarías ser más específico en lo que quieres.
Por cierto, te paso la dirección para que descargues una aplicación que yo hice para ese mismo propósito. Es sólo el ejecutable, sin el código, pero puede ser que algunas de las opciones que trae te puedan dar ideas, como el hecho de que la aplicación incluye el cifrado de la información.
http://www.benjasoft.is-great.net/index.php?CargarP=Scripts/PHP/PHPAuto.php&ParPost=333&ArchReemplazar=DocumentosPagina/Auto_programa1.html&ArchVariables=Recursos/Aplicaciones/AutoDefiafer1Variables.txt Al inicio de la aplicación te pedirá que introduzcas una contraseña, dejas el campo de texto vacío y le das en ingresar, porque al inicio la contraseña es nula, pero se la puedes cambiar desde la aplicación. Todo está en la ayuda en PDF que se adjunta en la descarga.
Otra cosa que se me olvidaba, deberás incluir una rutina que te cargue las claves al inicio de la aplicación.
Saludos
En línea
www.es.neftis-ai.com Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
SγиtαxEяяoя
Desconectado
Mensajes: 154
Hola Benjo, gracias por responder pero mira este error que me da al tratar de guardar los datos
En línea
El Benjo
Ok, no me había fijado en eso, disculpa. Me faltó hacer referencia a la propiedad Text: "ListView1.Items(Contador).SubItems(0).Text". Creo que con eso debe de quedar.
En línea
www.es.neftis-ai.com Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
SγиtαxEяяoя
Desconectado
Mensajes: 154
Bien, ahora estoy intentando algo como esto, algo simple no quiero complicarme tanto, ya que apenas estoy aprendiendo
If TextUser.Text = "User123" Or TextPass.Text = "Password123" Then
Form2.Show ( )
Else
MsgBox ( "Incorrect." )
End If
Pero al poner "User" este automáticamente abre el "Form2"
Yo quiero, que se necesite poner el TextUser.Text y luego el TextPass.Text y hay si se pueda abrir el Form2
« Última modificación: 19 Julio 2013, 01:03 am por SγиtαxEяяoя »
En línea
El Benjo
Es que has puesto Or en lugar de And. Es un error común, suele pasar.
En línea
www.es.neftis-ai.com Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
SγиtαxEяяoя
Desconectado
Mensajes: 154
Como puedo validar la contraseña que he puesto en el "Form1" y en el "Form2" pueda cambiarla
Tengo esto en el "Form1"
If TextUser.Text = "Test" And TextPass.Text = "123" Then
Form2.Show ( )
Me .Visible = False
Else
MsgBox ( "Incorrect." )
End If
El usuario es "Text" y la contraseña es "123"
Tengo una opción dentro de otro "Form" en la que deseo cambiar la contraseña
Algo asi
Pero no se bien como hago el procedimiento
Esto es lo que trato de hacer
If Form1.TextPass .Text = "123" Then
NewPass.Enabled = True
RNewPass.Enabled = True
Form1.TextPass .Text = RNewPass.Text
Form1.TextPass .Text = NewPass.Text
Else
NewPass.Enabled = False
RNewPass.Enabled = False
End If
En línea
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
Intenta poniéndolo dentro de un Timer para que siempre lo compruebe en general ese code está bien.
En línea
⏩
Interesados hablad por Discord.
SγиtαxEяяoя
Desconectado
Mensajes: 154
Tengo el siguiente problema
y no encuentro solucion alguna alguien me puede ayudar :p
VIDEO If TxtUser.Text = "" Or TxtPass.Text = "" Then
MessageBox.Show ( "Enter Credential" )
'ElseIf Not TextBox3.Text.Contains("https://") Or TextBox3.Text.Contains("http://") Then
'MessageBox.Show("URL Invalid")
ElseIf Not TxtUser.Text = "" Or TxtPass.Text = "" Then
Dim row1 As String ( ) = { TxtPass.Text , TxtWeb.Text }
ListView1.Items .Add ( TxtUser.Text ) .SubItems .AddRange ( row1)
Dim Add As New myObject( )
Add.Column1 = TxtUser.Text
Add.Column2 = TxtPass.Text
Add.Column3 = TxtWeb.Text
listViewItems.Add ( Add)
End If
TxtUser.Clear ( )
TxtPass.Clear ( )
TxtWeb.Clear ( )
If ListView1.SelectedItems .Count > 0 Then
ListView1.SelectedItems ( 0 ) .Text = TxtUser.Text
ListView1.SelectedItems ( 0 ) .SubItems ( 1 ) .Text = TxtPass.Text
ListView1.SelectedItems ( 0 ) .SubItems ( 2 ) .Text = TxtWeb.Text
Utilities.XMLSaver .SerializeToXML ( listViewItems, ListViewItemsXml)
End If
If ListView1.SelectedItems .Count > 0 Then
TxtUser.Text = ListView1.SelectedItems ( 0 ) .Text
TxtPass.Text = ListView1.SelectedItems ( 0 ) .SubItems ( 1 ) .Text
TxtWeb.Text = ListView1.SelectedItems ( 0 ) .SubItems ( 2 ) .Text
End If
If ListView1.SelectedItems .Count > 0 AndAlso MessageBox.Show ( "Do you want to delete this item?" , "Confirm" , MessageBoxButtons.YesNo ) = Windows.Forms .DialogResult .Yes Then
ListView1.SelectedItems ( 0 ) .Remove ( )
End If
If TxtWeb.Text .Contains ( "https://" ) Or TxtWeb.Text .Contains ( "http://" ) Or TxtWeb.Text .Contains ( "www." ) Then
Process.Start ( TxtWeb.Text )
ElseIf TxtWeb.Text = "" Then
MessageBox.Show ( "Invalid URL" )
End If
Utilities.XMLSaver .SerializeToXML ( listViewItems, ListViewItemsXml)
La cosa es que, al editar o borrar algun item, este no guarda los cambios en el XML
Este es el codigo
Imports System.Collections .Generic
Imports System.Linq
Imports System.Text
Imports System.IO
Imports System.Xml
Imports System.Xml .Serialization
Namespace Utilities
Public NotInheritable Class XMLSaver
Private Sub New ( )
End Sub
Public Shared Sub SerializeToXML( ListviewItems As List( Of myObject) , path As String )
Dim serializer As New XmlSerializer( GetType ( List( Of myObject) ) )
Dim textWriter As TextWriter = New StreamWriter( path)
serializer.Serialize ( textWriter, ListviewItems)
textWriter.Close ( )
End Sub
Public Shared Function DeserializeFromXML( path As String ) As List( Of myObject)
Dim deserializer As New XmlSerializer( GetType ( List( Of myObject) ) )
Dim textReader As TextReader = New StreamReader( path)
Dim ListviewItems As List( Of myObject)
ListviewItems = DirectCast( deserializer.Deserialize ( textReader) , List( Of myObject) )
textReader.Close ( )
Return ListviewItems
End Function
End Class
End Namespace
« Última modificación: 19 Julio 2013, 18:03 pm por SγиtαxEяяoя »
En línea
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
En el primer code, tienes esto:
ElseIf Not TxtUser.Text = "" Or TxtPass.Text = "" Then Por que no usas un Else?
Y aparte que errores tienes... No has dado nada más que codes
En línea
⏩
Interesados hablad por Discord.
Mensajes similares
Asunto
Iniciado por
Respuestas
Vistas
Último mensaje
Guardar archivos dentro de un form(listview)....
« 1 2 »
Programación Visual Basic
5v5
13
5,416
16 Noviembre 2005, 03:06 am
por ..::[ thekingkid ]::..
Guardar en archivo .txt
Java
Topaz_34
6
5,445
30 Junio 2007, 02:16 am
por marioly
Tuto-Como cargar un listview desde un archivo .txt en visualbasic
.NET (C#, VB.NET, ASP)
Christian010
4
12,567
15 Noviembre 2008, 17:10 pm
por seba123neo
Listview con iconos de archivo
.NET (C#, VB.NET, ASP)
okik
2
3,221
1 Diciembre 2016, 16:15 pm
por Eleкtro
Help Cargar y Guardar listview en txt VB.net
.NET (C#, VB.NET, ASP)
ELMU3RT0
0
3,178
19 Agosto 2021, 03:24 am
por ELMU3RT0