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

  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 : 1234
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 : 1042
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 : 1435
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+

  7. #7
    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
    Merci mais pour l'extension moi je suis en VB. Net , non en C# ... :-)

  8. #8
    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
    Citation Envoyé par New World Voir le message
    Merci mais pour l'extension moi je suis en VB. Net , non en C# ... :-)
    Et ça change quoi ????
    As-tu simplement regardés le contenu du projet exemple ? Moi aussi je suis en VbNet......

    [Je croyais que tu n'étais pas débutant en langage de programmation vbnet], lorsqu'on dit se genre de chose ça implique de maîtriser ton EDI !

    Donc tu ajoutes la référence (la librairie de classe ou vulgairement appelé le fichier Dll) à ton projet et le tour est joué ... comme je l'ai fais dans le projet exemple finalement.

    Allez sur ces belles paroles....bonne chance pour ton projet car je ne peux pas t'aider davantage sur les fondamentaux de la programmation (connaissances algorithmique, maîtrise du langage et de ton environnement de développement = Visual Studio).

    NB : ton petit merci me convient amplement pour le reste

    ++

  9. #9
    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
    Grand Merci , je suis quelqu'un de poli , alors pas de début d'énervement, merci !
    Impossible de télécharger le projet Createur station blanche cependant :-( .

  10. #10
    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
    la majeur partie de mes projets sont open source sur bitbucket. Tu ne regardes peut etre pas au bon endroit :
    https://bitbucket.org/3dotdev/create...nche/downloads

    a+

  11. #11
    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
    Il me demande les droits d'administrateur , quand je lance en mode administrateur il ne se lance pas ...
    Il y aurait pas un installeur pour ton logiciel ?

  12. #12
    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,

    ...Tu vas en apprendre des choses sur ton environnement de développement grâce au sujet que tu as exposés....

    Ce message apparaît car je l'ai codé ainsi (dans le fichier Program.vb). Dans mon projet j'utilise des routines qui requiert des droits administrateur (création/modification/suppression de comptes Windows,..etc...).
    Si tu débogues directement le projet (flèche verte) et qu'il t'affiche "Vous devez être membre du groupe admin...etc.." alors il faut que tu modifies le fichier Manifest du projet : http://www.developpez.net/forums/d12...p/#post7056421
    (Tu commentes la ligne qui contient asInvoker et tu décommentes la ligne qui contient requireAdministrator)
    Tu débogues de nouveau (flèche verte) et l'EDI te proposes de relancer le projet avec une élévation de privilèges.

    Si tu exécutes directement le binaire (celui du répertoire Release) et que tu as ce message "Vous devez être membre du groupe admin...etc.." c'est que ton compte n'est pas membre du groupe admin ou que tu n as pas cliquer droit sur le fichier (executer en tant qu administrateur) et donc l'appli ne se lancera pas pour les raisons citées plus haut (c'est ainsi ).

    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