none
Deserializar archivo al hacer doble clic sobre el mismo RRS feed

  • Pregunta

  • Buenas tardes de nuevo compañeros;

    Últimamente me han ayudado mucho en este grandísimo foro, en el tema de escribir y leer archivos. Me encuentra ahora en un dilema quizás algo más pequeño, y es que no se como puedo lograr que al hacer doble clic sobre un archivo(que tiene una extensión determinada por mi, y que ya he realziado las respectivas configuraciones en VS para el instalaodor para asociar la extensión) mi aplicación lea dicho archivo al cargarse respectivamente, es decir, deserialziar dicho archivo.

    Muestro unas imágenes de lo comentado:

    Como observan me guarda el archivo(hasta con su propio icono), pero luego cuando presiono doble clic sobre el mismo, me abre mi aplicación, pero no lee los datos guardados, es decir no lo deserializa.Esto es de esperarse, ya que debo hacr un proceso para cuando se cargue la aplicación y lea dicho archivo, pero realmente no se como lograrlo.

    Espero me puedan ayudar, tal como lo han hecho. Esta pregunta la habúia hecho en pregunta, pero como ya me habían respondido el hilo principal de la misma, pero era sobre el mismo tema, pienso que no me responderán más.

    Dios los bendiga.


    Harold Alonso Quintero Pineda

    Ingeniero Civil

    Universidad Francisco de Paula Santander Ocaña

    Correo: haroldpineda1401@outlook.com

    Cel: 3188433106


    jueves, 29 de octubre de 2015 19:33

Todas las respuestas

  • hola

    cuando realizas doble click en el archivo se abre la aplicacion asociada, pero puedes validar que por parametro llega la ruta del archivo ?

    >>pero no lee los datos guardados, es decir no lo deserializa

    por parametro solo llega la ruta del archivos, la deserializacion la realizas desde codigo

    aunque no mencioans que tipo de serializacion realizaste, quizas es un xml ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 29 de octubre de 2015 20:36
  • Señor Leandro, buenas tardes;

    Si, cuando hago doble clic en el archivo se abre mi aplicación, pero como lo dijo no se como hacer para leer ese archivo desde su ruta. La deserialziación es binaria.

    Entiendo que cuando se cargue la aplicación debo leer dicha ruta del archivo y desearilizarlo, pero lo primero no se como hacerlo ¿cómo determinar la ruta de ese archivo, para luego hacer el proceso le lectura del mismo?


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970


    jueves, 29 de octubre de 2015 20:41
  • Señor Leandro, el proceso de deserialización si lo tengo en código, pero este lo tengo cuando el usuario tiene abierta la aplicación y presiona el botón Abrir. Cuando sucede esto, se abre un OpenFileDialog, leo el archivo y hago el proceso de lectura del mismo. Estu me funciona perfectamente.

    Ahora, cuando no tengo abierta la aplicación, pero ya tengo un archivo generado en el pc, presiono doble clic sobre el mismo me abre el programa, pero como es de esperarse no lee dicho archivo, pues como usted dice, al cargar el formulario debo leer a través de un parámetro dicho archivo, y luego sí desearilizarlo. Mi inconvenuente radica en cómo leer ese archivo.

    Espero me pueda ayudar. Muchas gracias de antemano.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    jueves, 29 de octubre de 2015 21:16
  • http://www.codeproject.com/Articles/17023/System-File-Association
    viernes, 30 de octubre de 2015 12:10
  • Hola, buenos días;

    Traté de implementarlo en mi aplicación, pero no me reconoce el código(convertido a VB.Net). El código que uso para desearilizar en mi aplciación, pero a través de la opción de Abrir, a través de un OpenFileDialog, es el siguiente:

     Private Sub Open()
    
            Dim fileName As String
    
            ' Seleccionamos un archivo para abrir.
            '
            Using ofd As New OpenFileDialog()
                ofd.Filter = "Archivos del proyecto|*.top|Todos los archivos|*.*"
                Dim dr As DialogResult = ofd.ShowDialog(Me)
                If (dr <> DialogResult.OK) Then Return
                fileName = ofd.FileName
            End Using
    
            Try
                ' Creamos una nueva instancia de la clase Persona como
                ' resultado de deserializar el archivo especificado.
                '
                Dim p As Cartera = Serialización.Deserialize(fileName)
    
                txt_longtramo.EditValue = (p.c_long_tramo)
                txt_penlong.EditValue = (p.c_pend_long)
                txt_pendtrans.EditValue = (p.c_pend_trans)
                txt_cotascada.Value = (p.c_sub_tramo)
                txt_anchovia.EditValue = (p.c_anchovia)
                che_peralte.Checked = (p.c_peraltada)
    
                txt_kminicial.EditValue = p.c_kminicial
                txt_cotainicial.EditValue = p.c_cota_inicial
    
                GridControl1.DataSource = p.cartera
    
                ' Si todo ha ido bien, guardamos en el
                ' campo la ruta del archivo abierto.
                '
                m_fileName = fileName
    
            Catch ex As Exception
                ' Se ha producido un error.
                MessageBox.Show(ex.Message)
    
            End Try
    
        End Sub

    La serialización es binaria, pero como he dicho, este mismo código no puedo hacerlo, cuando el usuario ahce doble clic en el archivo, y se abre mi aplicación, pues al cargar mi programa debo implementar un código para leer ese archivo.

    Agradeciera muchísimo que me pudiese ayudar, de una fomra un poco más demostrativa, solo necesito que me enseñe lo necesario,para poderlo hacer.


    Harold Alonso Quintero Pineda Ingeniero Civil Universidad Francisco de Paula Santander Ocaña Correo: haroldpineda1401@outlook.com Cel: 3158700970

    viernes, 30 de octubre de 2015 15:30