IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.NET] Enregistrer le contenu d'un formulaire dans un fichier XML


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de New World
    Homme Profil pro
    Commandant croisière
    Inscrit en
    Juillet 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Commandant croisière
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 132
    Par défaut [VB.NET] Enregistrer le contenu d'un formulaire dans un fichier XML
    Bonjour,
    Je programme actuellement en VB.Net, je ne débute pas dans ce langage de programmation . Mais j'aurais bien besoin d'aide pour cette fois ;-)
    J'ai suivis un tutoriel pour créer sa propre extension de fichier en VB.Net .
    C'est relativement simple car le framework nous facilite la vie :-)
    J'ai donc choisis le XML ...
    Voici le lien du tutoriel vous comprendrez :
    http://www.leblogduhacker.fr/vb-net-...pre-extension/
    J'ai aussi quelques problèmes au niveau de l’extension :
    - L'icône de mon logiciel ne s'affiche pas directement sur le fichier créer (C'est car le fichier par exemple (TEST.Extension) n'est pas directement associer à mon logiciel par défaut , je dois aller le chercher et dire à l'ordinateur qu'il faut toujours utiliser mon logiciel pour ouvrir les fichier (.Extension). J'ai aussi crypter mon fichier Xml (qui comporte mon extension) pour que celui ci ne s'ouvre qu'avec mon logiciel et pas avec le bloc note ou autres ...
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    Imports System.IO
    Imports System.Xml
    Imports System.Text
    Imports System.Security.Cryptography
    Public Class Form1
     
        Sub associerExtension()
     
            Dim extension As String = ".osms"
            Dim nomSansPoint As String = extension.Substring(1, extension.Length - 1) 'on aura uniquement test1
            Dim cheminFinalProgramme As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
     
            My.Computer.Registry.ClassesRoot.CreateSubKey(extension).SetValue("", nomSansPoint, Microsoft.Win32.RegistryValueKind.String)
            My.Computer.Registry.ClassesRoot.CreateSubKey(nomSansPoint & "\shell\open\command").SetValue _
                ("", cheminFinalProgramme & " ""%l"" ", Microsoft.Win32.RegistryValueKind.String)
     
        End Sub
        Public Sub LireXML(ByVal XML As String)
     
            Dim documents As New XmlDocument
            documents.LoadXml(XML)
            Dim prenom As XmlNodeList = documents.GetElementsByTagName("Prenom")
            Dim nom As XmlNodeList = documents.GetElementsByTagName("Nom")
            'On va parcourir tous les élements Prénoms, ici un seul
            For i As Integer = 0 To prenom.Count = 1
                SouhaiterBienvenue(prenom(i).InnerText, nom(i).InnerText)
            Next
     
     
        End Sub
     
        Public Sub SouhaiterBienvenue(ByVal prenom As String, ByVal nom As String)
     
            Dim utilis As String = String.Format("{0} {1}", prenom, nom)
            Label1.Text = utilis 'on souhaite la bienvenue à l'utilisateur ayant enregistré le fichier test1
     
     
        End Sub
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Try 'on gère les erreurs
                If My.Computer.Registry.ClassesRoot.OpenSubKey(".osms") Is Nothing Then
     
                    'si l'extension n'est pas encore associée, on l'associe.
                    associerExtension()
     
                End If
            Catch ex As Exception
                MsgBox("Erreur !") 'message très descriptif..
            End Try
     
            'on obtient les arguments, à savoir le nom du fichier avec lequel le prog s'est ouvert
            For Each argument As String In Environment.GetCommandLineArgs()
     
                If argument.Contains(".osms") Then 'si il contient notre extension
     
                    TextBox3.Text = TextBox3.Text & argument 'on affiche le chemin du fichier test1
                    LireXML(Decryptage(My.Computer.FileSystem.ReadAllText(argument)))
     
                End If
            Next
        End Sub
        Sub enregistrerPref()
     
            Dim donneesXML As String = "<?xml version=""1.0"" encoding=""utf-8"" ?>" 'ligne nécessaire pour adhérer au standard
            donneesXML = String.Concat(donneesXML, vbNewLine, "<Enregistrement>") 'notre balise principale
            donneesXML = String.Concat(donneesXML, vbNewLine, vbTab, "<Prenom>" & TextBox2.Text & "</Prenom>")
            donneesXML = String.Concat(donneesXML, vbNewLine, vbTab, "<Nom>" & TextBox1.Text & "</Nom>")
            donneesXML = String.Concat(donneesXML, vbNewLine, "</Enregistrement>")
     
            'on enregistre sous notre propre extension (et ici, sur le bureau)
            Using sr As New StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\monEx.osms")
                sr.Write(Cryptage(donneesXML))
            End Using
     
        End Sub
     
        Public Function Cryptage(ByVal donnees As String) As String
     
            Dim sha1 As New SHA1Managed
            Convert.ToBase64String(sha1.ComputeHash(Encoding.ASCII.GetBytes(donnees)))
            Dim donneeCryptees() As Byte = ASCIIEncoding.ASCII.GetBytes(donnees)
            Dim cryptageEnString As String = Convert.ToBase64String(donneeCryptees)
            Return cryptageEnString
     
        End Function
        Public Function Decryptage(ByVal Data As String) As String
     
            Dim dd() As Byte = Convert.FromBase64String(Data)
            Dim decryptageEnString As String = Encoding.ASCII.GetString(dd)
            Return decryptageEnString
     
        End Function
        Sub ajouterIcone()
            My.Computer.Registry.ClassesRoot.OpenSubKey(".osms").CreateSubKey("DefautIcon").SetValue("", ",0")
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            enregistrerPref()
        End Sub
    End Class
    Mon objectif principal , c'est de pouvoir enregistrer le contenu de plusieurs textboxs dans mon fichier xml , et quand j'ouvre celui ci avec mon logiciel , les mots écrit dans les textboxs apparaissent .
    Exemple :
    J'ai 2 textboxs et 1 bouton
    Nom : Capture.PNG
Affichages : 1233
Taille : 5,1 Ko
    Quand je clique sur le bouton "Enregistrer" il faut que le contenu des textboxs soit enregistrer dans un fichier xml créer en même temps (Moi mon extension xml je l'est nommer (".OSM") )
    Comme ça quand je ferme le logiciel et que je clique sur mon fichier xml :
    Nom : Capture2.PNG
Affichages : 1041
Taille : 6,1 Ko
    Ça m'ouvre mon logiciel et ça me remet le contenu de mes textboxs .
    Comme ça pour plusieurs fichiers . Si j'ouvre test1 par exemple : alors textbox1 = "Hôpital" et la textbox2 = "Garage" admettons...
    J'espère que vous pourrez m'aider , merci beaucoup (-:

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonsoir,

    Pour associer une extension a un programme c est ici.

    concernant le rappatriement du contenu dans ton programme l ideal serait d utiliser la serialisation mais il faudra necessairement que le contenu soit decrypté dans un premier temps (puisque tu parles de cryptage plus haut).

    Il y a un exemple en vbnet dans un de mes projet nommé createurStationBlanche sur mon bitbucket.

    a+

  3. #3
    Membre confirmé Avatar de New World
    Homme Profil pro
    Commandant croisière
    Inscrit en
    Juillet 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Commandant croisière
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 132
    Par défaut
    Salut ,
    Merci,
    mais je ne sais pas si tu m'a bien compris . Je n'est pas encore explorer ton logiciel mais je crois que toi c'est "Ouvrir =} enregistrer =} fermer =}ouvrir et retrouver ses informations ....
    Moi ça n'est pas ça ... Je crée actuellement un logiciel d'édition de code sans ou avec programmation (Cherche "OSMaker")
    À chaque fois que l'utilisateur clique sur OK
    Nom : Capture.PNG
Affichages : 1433
Taille : 328,0 Ko
    Il faut que sa rajoute un fichier XML avec toutes les informations et Quand on ouvre ce fichier ça ouvre cette fenêtre mais avec les données du fichier , il peu y avoir plusieurs fichier !
    :-)

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonjour,

    J'ai due certainement mal comprendre......

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    J'avoue ne pas vraiment comprendre non plus car ... on ne sait pas vraiment où tu bloques...

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    @ebastien : je disais ne pas avoir compris par ironie.....

    @OP :

    ---> Lorsque tu décris ce scénario :

    Mon objectif principal , c'est de pouvoir enregistrer le contenu de plusieurs textboxs dans mon fichier xml , et quand j'ouvre celui ci avec mon logiciel , les mots écrit dans les textboxs apparaissent .
    Il s'agit bien d'un fichier de paramètres (associé à ton application) ! C'était pourtant textuellement bien explicité....

    En bref : Ce qui se conçoit bien s'énonce clairement.

    J'illustre tout de même et maintient mes propos et exemples cités plus haut (Association + sérialisation) au moyen d'un projet exemple dans lequel il y a quelques commentaires :

    http://wallace87000.upd.fr/Ass.7z

    A toi d'adapter tout cela à tes besoins.

    Bonne lecture et bonne continuation

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/09/2010, 23h25
  2. Réponses: 2
    Dernier message: 23/05/2009, 02h18
  3. Réponses: 6
    Dernier message: 01/04/2009, 09h49
  4. [Conception] Ecrire le contenu d'un formulaire dans un fichier
    Par omeada dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 27
    Dernier message: 26/04/2007, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo