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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Librería de Snippets para VB.NET !! (Compartan aquí sus snippets)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 58 Ir Abajo Respuesta Imprimir
Autor Tema: Librería de Snippets para VB.NET !! (Compartan aquí sus snippets)  (Leído 480,168 veces)
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #270 en: 31 Julio 2013, 13:11 pm »

Citar
no eres quien para llamar noobs a los que no saben PHP...

:o :o :o :o :o :o :o :o :o

Tengo que citarlo, porque me parece muy fuerte... Cuando te pase la lista de los lenguajes que había tocado y no había aprendido, estaba VB.NET y PHP, es decir que yo mismo me califico como noob... Lo que más bueno me parece, es que m estás acusando, de a ver llamado noob a alguien que no sepa PHP... Hombre, en ciertas ocasiones puede, pero, porque me vienen preguntando (no en el foro, si no por Skype), cosas y digo, es que no sabes Googlear... Y cosas tales, pero yo en mi vida, he tomado a nadie por Noob en el tema de la programación en el foro, y si lo ha parecido ha sido p**a coincidencia...

Sobre la String, eran las 12 de la noche y llevaba prisa por irme... Me dí cuenta, pero ni me pare a corregirlo... Puede que haya hecho Copy/paste, pero porque llevaba prisa... Si no, me hubiese parado a comprobar bien lo que hacía eso.. Y es más hasta lo sospechaba, pero como ya digo llevaba prisa tio, que se le va a hacer. :P



Edit: En SO no te digo que no..., pero aquí en el foro, todavía no he tomado a nadie como noob. ;)


« Última modificación: 31 Julio 2013, 15:35 pm por Ikillnukes » En línea


Interesados hablad por Discord.
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #271 en: 31 Julio 2013, 15:00 pm »

Nuevo Snippet, calcular distancia recorrida con el ratón: :)

Código
  1. Public Class Form1
  2.  
  3. #Region "Variables"
  4.    Private Enum eUnidades  'Las unidades de nuestro "odometro" serán metro o kilometros
  5.        Metros = 0
  6.        Kilometros
  7.    End Enum
  8.    Private UnidadActual As eUnidades
  9.  
  10.    Private NOMBRE_FICHERO_ODOMETER As String = "MouseOdometerNET.tmp"  'Fichero donde se guardará la distancia recorrida (siempre en milimetros)
  11.    Private NOMBRE_FICHERO_ODOMETER_Config As String = "MouseOdometerNET.cfg" 'Fichero donde se guardará si la distancia está en metros o kilometros
  12.  
  13.    Private DistanciaRecorridaMM As Single  'Distancia total recorrida (siempre en milimetros)
  14.  
  15.    Private Structure sPointMM  'Coordenadas del raton en milímetros
  16.        Dim X As Single
  17.        Dim Y As Single
  18.    End Structure
  19.  
  20.    Private gDPIX As Integer = 96   'DPIs de la pantalla
  21.    Private gDPIY As Integer = 96
  22.  
  23.    Private WithEvents TMR_guardarDistancia As New Timer    'Timer que periodicamente guarda la distancia en el fichero
  24.    Private WithEvents TMR_capturaPosicionMouse As New Timer    'Timer de captura de la posición del raton
  25.  
  26.    Private puntoAnterior As New Point(0, 0)    'Punto capturado anteriormente
  27. #End Region
  28.  
  29. #Region "Ficheros. Lectura / Escritura"
  30.    Private Sub EscribirFichero(ByVal Fichero As String, ByVal Data As String)
  31.        Dim objFileWrite = New System.IO.StreamWriter(Fichero, False, System.Text.Encoding.Default)
  32.        objFileWrite.Write(Data)
  33.        objFileWrite.Flush()
  34.        objFileWrite.Close()
  35.    End Sub
  36.  
  37.    Private Function LeerFichero(ByVal Fichero As String) As String
  38.        Dim objFileRead As New System.IO.StreamReader(Fichero)
  39.        Dim sData As String = objFileRead.ReadToEnd
  40.        objFileRead.Close()
  41.  
  42.        Return sData
  43.    End Function
  44. #End Region
  45.  
  46. #Region "Eventos a nivel de formulario"
  47.    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  48.        TMR_capturaPosicionMouse.Enabled = False
  49.        TMR_guardarDistancia.Enabled = False
  50.  
  51.        TMR_capturaPosicionMouse.Dispose()
  52.        TMR_guardarDistancia.Dispose()
  53.  
  54.        'Cuando cerramos el programa, se graba la distancia recorrida
  55.        EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, DistanciaRecorridaMM.ToString)
  56.  
  57.        GC.Collect()
  58.    End Sub
  59.  
  60.    'Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
  61.    '    If Me.WindowState = FormWindowState.Minimized Then
  62.    '        Me.Visible = False
  63.    '    End If
  64.    'End Sub
  65.  
  66.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  67.        Dim g As Graphics = Me.CreateGraphics()
  68.        gDPIX = g.DpiX '¿Cual son los DPI de la pantalla?
  69.        gDPIY = g.DpiY
  70.  
  71.        Me.WindowState = FormWindowState.Minimized
  72.        NotifyIcon1.ShowBalloonTip(20, "Información", "MouseOdemeterNET Ejecutándose", ToolTipIcon.Info)
  73.  
  74.        IniciarParametros() 'Carga los "parámetros"
  75.        SetCheckUnidadMenu() 'Activa o desactiva la unidad de medida acutal en el ContextMenu
  76.  
  77.        'Si no existe el fichero con la distancia recorrida, se crea un nuevo
  78.        If IO.File.Exists(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER) = False Then
  79.            EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, "0")
  80.            DistanciaRecorridaMM = 0
  81.        Else
  82.            'En caso contrario, se carga la distancia recorrida
  83.            Dim s As String = LeerFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER)
  84.            DistanciaRecorridaMM = CType(s, Single)
  85.        End If
  86.  
  87.        'Inicializamos el timer de la captura de la posicion del raton
  88.        TMR_capturaPosicionMouse.Interval = 250
  89.        TMR_capturaPosicionMouse.Enabled = True
  90.  
  91.        'Cada "60 segundos" se irá guardando la distancia recorrida
  92.        TMR_guardarDistancia.Interval = 60000
  93.        TMR_guardarDistancia.Enabled = True
  94.  
  95.        'Obtenemos el punto acual donde se encuentra el raton
  96.        puntoAnterior = Cursor.Position
  97.  
  98.        Me.Width = 0
  99.        Me.Height = 0
  100.    End Sub
  101. #End Region
  102.  
  103. #Region "Calculo de la distancia"
  104.    'Convierte una posicion de pixel en pantalla a su valor en milimetros
  105.    Public Function PIXELtoMM(ByVal ValorPixel As Integer, ByVal ValorDPI As Integer) As Single
  106.        Return (ValorPixel / ValorDPI * 25.4)
  107.        'Return (Format(((25.4 * ValorPixel) / ValorDPI), "0.0000"))
  108.    End Function
  109.  
  110.    ' Calcula la distancia entre dos puntos (expresados en pixels)
  111.    Private Function DistanciaEntreDosPuntos(ByVal Origen As Point, ByVal Destino As Point) As Single
  112.  
  113.        If (Origen.X = Destino.X) And (Origen.Y = Destino.Y) Then
  114.            Return 0
  115.        Else
  116.            'Paso 1: los puntos pasados como "pixels" se convierten en coordenadas cartesianas en "milimetros"
  117.            Dim tmpPointOrigenMM As sPointMM
  118.  
  119.            Dim tmpPointDestinoMM As sPointMM
  120.  
  121.            tmpPointOrigenMM.X = PIXELtoMM(Origen.X, gDPIX)
  122.            tmpPointOrigenMM.Y = PIXELtoMM(Origen.Y, gDPIY)
  123.  
  124.            tmpPointDestinoMM.X = PIXELtoMM(Destino.X, gDPIX)
  125.            tmpPointDestinoMM.Y = PIXELtoMM(Destino.Y, gDPIY)
  126.  
  127.            'Paso 2: Aplicar la formula de la distancia entre dos puntos para saber la distancia en milimetros
  128.            'd=SQR[ (destino.x-origen.x)^2 + (destino.y-origen.y)^2 ]
  129.  
  130.            Dim Xdist As Single = Math.Pow((tmpPointDestinoMM.X - tmpPointOrigenMM.X), 2)
  131.            Dim Ydist As Single = Math.Pow((tmpPointDestinoMM.Y - tmpPointOrigenMM.Y), 2)
  132.  
  133.            Return Math.Sqrt(Xdist + Ydist)
  134.  
  135.        End If
  136.    End Function
  137. #End Region
  138.  
  139. #Region "Timers"
  140.    'Timer que va guardando la distancia en un fichero
  141.    Private Sub TMR_guardarDistancia_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TMR_guardarDistancia.Tick
  142.        EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, DistanciaRecorridaMM.ToString)
  143.    End Sub
  144.  
  145.    'Timer que va capturando la posición del raton
  146.    Private Sub TMR_capturaPosicionMouse_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TMR_capturaPosicionMouse.Tick
  147.  
  148.        'Oculta el "formulario". Esto se hace solo la primera vez que se entra en este timer
  149.        Static bHecho As Boolean
  150.        If bHecho = False Then
  151.            bHecho = True
  152.            Me.Visible = False
  153.        End If
  154.  
  155.        Dim MousePosition As Point
  156.        MousePosition = Cursor.Position
  157.  
  158.        'Actualiza la variable con la distancia recorrida
  159.        DistanciaRecorridaMM += DistanciaEntreDosPuntos(puntoAnterior, MousePosition)
  160.        puntoAnterior.X = MousePosition.X
  161.        puntoAnterior.Y = MousePosition.Y
  162.  
  163.        'Muesta la distancia en el ContextMenu
  164.        Select Case UnidadActual
  165.            Case eUnidades.Metros
  166.                DistanciaToolStripMenuItem.Text = DistanciaRecorridaMM / 1000 & " m"
  167.            Case eUnidades.Kilometros
  168.                DistanciaToolStripMenuItem.Text = DistanciaRecorridaMM / 1000000 & " km"
  169.        End Select
  170.  
  171.        'y en el "caption" del NotifyIcon
  172.        NotifyIcon1.Text = "MouseOdometerNET (" & DistanciaToolStripMenuItem.Text & ")"
  173.  
  174.    End Sub
  175. #End Region
  176.  
  177. #Region "ContextMenu"
  178.    '¿Cerrar la aplicación?
  179.    Private Sub CerrarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerrarToolStripMenuItem.Click
  180.        If MessageBox.Show("Oh Dios mío. ¿Estás seguro que deseas volver a la soledad del escritorio de Windows?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
  181.            Me.Close()
  182.        End If
  183.    End Sub
  184.    '¿Resetear la distancia recorrida?
  185.    Private Sub ResetearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetearToolStripMenuItem.Click
  186.        If MessageBox.Show("¿Estás seguro que deseas resetear la distancia recorrida?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
  187.            EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, "0")
  188.            DistanciaRecorridaMM = 0
  189.        End If
  190.    End Sub
  191.    'Seleccionar la distancia como "Metros"
  192.    Private Sub MetrosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MetrosToolStripMenuItem.Click
  193.        UnidadActual = eUnidades.Metros
  194.        EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config, UnidadActual)
  195.        SetCheckUnidadMenu()
  196.    End Sub
  197.    'Seleccionar la distancia como "Kilometros"
  198.    Private Sub KilometrosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KilometrosToolStripMenuItem.Click
  199.        UnidadActual = eUnidades.Kilometros
  200.        EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config, UnidadActual)
  201.        SetCheckUnidadMenu()
  202.    End Sub
  203. #End Region
  204.  
  205. #Region "Miscelanea"
  206.    'Devuelve cual es la carpeta "Temporal" de Windows
  207.    Private Function CarpetaTempWindows() As String
  208.        Dim s As String
  209.        s = IO.Path.GetTempPath
  210.        If s.EndsWith("\") = False Then s &= "\"
  211.        Return s
  212.    End Function
  213.    'Activa o desactiva la unidad de distancia en el ContextMenu
  214.    Private Sub SetCheckUnidadMenu()
  215.        Select Case UnidadActual
  216.            Case eUnidades.Kilometros
  217.                KilometrosToolStripMenuItem.CheckState = CheckState.Checked
  218.                MetrosToolStripMenuItem.CheckState = CheckState.Unchecked
  219.            Case eUnidades.Metros
  220.                KilometrosToolStripMenuItem.CheckState = CheckState.Unchecked
  221.                MetrosToolStripMenuItem.CheckState = CheckState.Checked
  222.        End Select
  223.    End Sub
  224.    'Inicia los "parámetros", de tal forma que si cerramos el programa y luego lo volvemos a ejecutar,
  225.    'Se inicializara la "unidad" de medida anterior
  226.    Private Sub IniciarParametros()
  227.        If IO.File.Exists(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config) = False Then
  228.            UnidadActual = eUnidades.Metros
  229.            EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config, UnidadActual)
  230.        Else
  231.            Dim s As String = LeerFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config)
  232.            UnidadActual = CType(s, eUnidades)
  233.        End If
  234.    End Sub
  235. #End Region
  236.  
  237. End Class

Fuente: http://www.gamefilia.com/ollydbg/11-07-2009/24484/cuantos-kilometros-recorre-tu-raton-adivinalo-ahora

Source: http://blog.transitopesado.com/blog/file.axd?file=2011%2f2%2fMouseOdometerNET_source.zip

Un saludo.
PD:
Con esto voy a poder hacer mi app, ahora solo me falta saber cuantas letras clico al día... :P Según Drvy vio por ahí cada 1000 teclas son 20 calorías, pues ale, a hacer reglas de 3... :P

Y así puedo sacar cuantas calorías se queman xD Que te parece?


En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #272 en: 31 Julio 2013, 15:01 pm »

yo en mi vida, he tomado a nadie por Noob en el tema de la programación

Ahá...

xD Que bueno es saber CSS y HTML y un poco de PHP. Es la ostia los noobs que son algunos.

[Offtopic] No subestimar a los demás, alguien podría estar pensando lo mismo sobre ti en .NET :silbar:

PD: La otra cita es para que recuerdes el buen consejo de Novlucker.

Si quieres aceptar mi consejo hazlo, sino pues no lo hagas, pero ya te he dicho lo que pienso y tu también lo acabas de hacer, ya no es necesario que sigamos haciendo más offtopics.

Saludos
En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #273 en: 31 Julio 2013, 15:04 pm »

Eh, eh, eh! xDD Me estás citando temas de MP xD Eso es privado, además, eso es en StackOverFlow, aquí no he visto nadie noob, solo que lo piden todo muy hecho, vamos como soy yo... xD

Ale, hasta aquí mi último offtopic, no quiero quedar yo como el malo, ostias! :xD :xD :laugh:

Maemia, vas y me sacas un MP que no tiene nada que ver con EHN, pero a que juegas? LOL xDD
PD: No te tomes a mal la expresión "a que juegas" ;)

Un saludo.



Citar
[Offtopic] No subestimar a los demás, alguien podría estar pensando lo mismo sobre ti en .NET :silbar:

Por ejemplo, medio foro... xD



Edit: Pero que digo? xD Si eso es un topic, es verdad, me reitero a lo dicho, pero por igual, me refería a StackOverflow, "la comunidad del código hecho", si tu lo sabes bien, que algunos preguntan unas cacho burradas que pa que... :P
« Última modificación: 31 Julio 2013, 15:33 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #274 en: 31 Julio 2013, 15:06 pm »

http://foro.elhacker.net/net/customizar_texto_2_o_3_veces_dentro_del_mismo_label-t394160.0.html;msg1867848#msg1867848
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #275 en: 31 Julio 2013, 15:08 pm »


Citar
Edit: Pero que digo? xD Si eso es un topic, es verdad, me reitero a lo dicho, pero por igual, me refería a StackOverflow, "la comunidad del código hecho", si tu lo sabes bien, que algunos preguntan unas cacho burradas que pa que... :P

:¬¬ :¬¬ Mientras tu te molestabas en buscar el topic yo me estaba reiterando en lo que he dicho, pido perdón... :P

Es más, si se me permite voy a citar un topic de StackOverFlow en el que creo que me vais a dar la razón...

La super ultra mega pregunta de PHP: http://stackoverflow.com/questions/17475292/no-database-selected-on-php/17475317#17475317

Solo a ese topic me refería (porque no encuentro preguntas muy noobs, bueno puede que algunas, pero son fallos tontos que cualquiera podría tener, hasta yo mismo), no me digáis, que no tengo razón, por lo menos quien sepa de PHP, pensará que ese tío que ha hecho la pregunta es un burro... No me digáis que no, porque eso es ya trolear... ;)

Puede que llevéis razón, en que otra persona puede estar pensando lo mismo de mi en .NET, pero eso no me quita a mi, de defender lo que si se en PHP ;)



Y ya dejemos desviar el tema...

Que os parece el Snippete que me he encontrado por ahí? :silbar:
« Última modificación: 31 Julio 2013, 15:40 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #276 en: 31 Julio 2013, 16:00 pm »

Mientras tu te molestabas en buscar el topic yo me estaba reiterando en lo que he dicho, pido perdón...


Pincha donde dice "Cita de: Ikillnukes" y verás lo que ocurre... ;)

Saludos.





Un administrador de Snippets:

http://forum.mphca.net/showthread.php?150809-Release-Vb-net-Code-Snippet-Manager



PD: NO LO HE TESTEADO
En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #277 en: 31 Julio 2013, 16:02 pm »


Pincha donde dice "Cita de: Ikillnukes" y verás lo que ocurre... ;)

Saludos.



Ya no me dí cuenta de hacerlo, me di cuenta más tarde xD


Anda, que chulo...

PD: Sigues sin opinar el Source que he encontrado.. :(
« Última modificación: 31 Julio 2013, 16:12 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #278 en: 31 Julio 2013, 16:20 pm »

PD: Sigues sin opinar el Source que he encontrado.. :(

¿Porque me toca siempre a mi opinar todos los snippets q posteas? xD

Si fuese un snippet tuyo opinaria, o en caso de que tuviese errores o se pudiese mejorar pues comentaria todos esos aspectos...

...¿pero que leches quieres q diga de ese snippet? xD, pues me parece un snippet muy ...peculiar, vaya ...que no le encuentro utilidad alguna :xD, pero bueno seguro que alguna utilidad se le podrá dar, aunque sea por pura curiosidad de saber cuantos "kilometros" recorremos a diario...

Saludos.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #279 en: 6 Agosto 2013, 21:50 pm »

Guardar y recuperar datos en una aplicación, por ejemplo si la aplicación se mata después de un bug o si reiniciamos el Pc (de forma brusca sin esperar a que las aplicaciones se cierren), etc...

El code es genérico y está optimizado para salvaguardar los datos (items) de un Listview, pero se puede modificar fácilmente para usarlo con todo tipo de datos...


PD: Esto es una traslación con pocas mejoras de un code de C# que me proporcionó Novlucker, así que los créditos para él.
Código
  1. #Region " Backup and Recovery Listview Items "
  2.  
  3.    ' [ Backup and Recovery Listview Items ]
  4.  
  5.    ReadOnly BackupFile As String = "Recovery.tmp"  ' File conaining the data to recover.
  6.    Private BackupData As New List(Of ListViewItem) ' Storage for the data to backup.
  7.    Private BinaryFormat As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
  8.  
  9.    Private Sub Backup(ByVal ListView As ListView)
  10.  
  11.        BackupData.Clear()
  12.  
  13.        Select Case ListView.Items.Count
  14.  
  15.            Case 0
  16.                Try : IO.File.Delete(BackupFile) : Catch : End Try
  17.                ' We don't need the BackupFile if it will not contains anything to recover...
  18.  
  19.            Case Else
  20.  
  21.                BackupData.AddRange(ListView.Items.Cast(Of ListViewItem))
  22.  
  23.                Using Writter As New IO.FileStream(BackupFile, IO.FileMode.Create)
  24.                    BinaryFormat.Serialize(Writter, BackupData)
  25.                End Using
  26.  
  27.        End Select
  28.  
  29.    End Sub
  30.  
  31.    Private Sub Recovery(ByVal ListView As ListView)
  32.  
  33.        If IO.File.Exists(BackupFile) Then
  34.  
  35.            Using Reader As New IO.FileStream(BackupFile, IO.FileMode.Open)
  36.                BackupData = DirectCast(BinaryFormat.Deserialize(Reader), List(Of ListViewItem))
  37.            End Using
  38.  
  39.            ListView.Items.AddRange(BackupData.ToArray())
  40.  
  41.        End If
  42.  
  43.    End Sub
  44.  
  45. #End Region

Ejemplo de uso:

Para guardar todos los items de un listview en un archivo temporal ...por ejemplo cada 60 segundos:

Código
  1.    WithEvents BackupTimer As New Timer With {.Interval = 60 * 1000, .Enabled = True}
  2.  
  3.    Private Sub BackupTimer_Tick(sender As Object, e As EventArgs) Handles BackupTimer.Tick
  4.        Backup(ListView1)
  5.        End ' Matamos la aplicación si se quiere testear...
  6.    End Sub


Y para restaurar los datos perdidos en la próxima ejecución de la aplicación podemos hacer lo siguiente:

Código
  1.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2.  
  3.        If IO.File.Exists(BackupFile) Then
  4.  
  5.            If MessageBox.Show( _
  6.               "An error ocurred during the last session." & vbNewLine & vbNewLine & _
  7.               "Do you want to recover the lost data?", "Recovery", _
  8.               MessageBoxButtons.YesNo, MessageBoxIcon.Question) _
  9.            = DialogResult.Yes Then
  10.  
  11.                Recovery(ListView1)
  12.                MessageBox.Show("Data recovered!", "Recovery", MessageBoxButtons.OK, MessageBoxIcon.Information)
  13.  
  14.            End If
  15.  
  16.        End If
  17.  
  18.    End Sub

Saludos.
« Última modificación: 6 Agosto 2013, 22:24 pm por EleKtro H@cker » En línea

Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 58 Ir Arriba Respuesta Imprimir 

Ir a:  

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