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 :

Écriture dans un INI


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 80
    Points : 54
    Points
    54
    Par défaut Écriture dans un INI
    Bonjour, Bonsoir à tous,

    Après pas mal de recherches, je n'arrive pas à trouver code à ma main ?
    Je travaille en fait sur du Visual Studio 2012 et je ne trouve que des codes obsolètes que je n'arrive pas à adapter.

    Je travaille sur un fichier .INI que j'arrive parfaitement à lire.
    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function lire_valeur(ByVal Cle As String) As String
            Try
                For Each Ligne As String In IO.File.ReadAllLines("MONFICHIERINI.ini")
                    If Ligne.Split("=")(0) = Cle Then
                        Return Ligne.Split("=")(1)
                    End If
                Next
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Function
    ( Je passe une clé en paramètre et le code me donne sa valeur tout simplement. )

    Là où je sèche c'est si je veux écrire des valeurs. Je voudrais par exemple préciser la clé et la valeur à mettre pour cette clé en paramètre et la fonction se charge d'écrire en là ou il faut. Mais je ne trouve pas.

    A savoir aussi que la clé peut déjà exister et avoir déjà une valeur que je veux tout simplement remplacer.

    Merci d'avance pour votre aide !

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Ou est ton code d'ecriture ?

    Dans la bible de Mr P. Lasserre tu devrais avoir ce qui t'interesse est au chapitre V-AC-5 - Utiliser "FileOpen" du VisualBasic, je mets pas le numero de page car il depend des versions.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Je n'en ai pas justement. Je ne sais pas comment le faire.
    J'essaierais de me renseigner un peu sur le livre mais si quelqu'un a d'autres pistes je suis preneur !

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Le cour est la

  5. #5
    Expert confirmé
    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
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Utilises cette classe :

    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
     
    Imports System.Runtime.InteropServices
    Imports System.IO
    Imports System.Text
     
    Public Class Cls_Ini
     
        Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" _
    Alias "GetPrivateProfileStringW" (ByVal lpApplicationName As String, _
        ByVal lpKeyName As String, ByVal lpDefault As String, _
        ByVal lpReturnedString As String, ByVal nSize As Int32, _
        ByVal lpFileName As String) As Int32
     
        Private Declare Unicode Function WritePrivateProfileString Lib "kernel32" _
        Alias "WritePrivateProfileStringW" (ByVal lpApplicationName As String, _
        ByVal lpKeyName As String, ByVal lpString As String, _
        ByVal lpFileName As String) As Int32
     
        Public Shared Sub INIDelete(ByVal INIPath As String, ByVal SectionName As String)
      Dim lpKeyName As String = Nothing
      Dim lpString As String = Nothing
      WritePrivateProfileString(SectionName, lpKeyName, lpString, INIPath)
        End Sub
     
        Public Shared Sub INIDelete(ByVal INIPath As String, ByVal SectionName As String, ByVal KeyName As String)
      Dim lpString As String = Nothing
      WritePrivateProfileString(SectionName, KeyName, lpString, INIPath)
        End Sub
     
        Public Shared Function INIRead(ByVal INIPath As String) As String
      Return INIRead(INIPath, Nothing, Nothing, "")
        End Function
     
        Public Shared Function INIRead(ByVal INIPath As String, ByVal SectionName As String) As String
      Return INIRead(INIPath, SectionName, Nothing, "")
        End Function
     
        Public Shared Function INIRead(ByVal INIPath As String, ByVal SectionName As String, ByVal KeyName As String) As String
      Return INIRead(INIPath, SectionName, KeyName, "")
        End Function
     
        Public Shared Function INIRead(ByVal INIPath As String, ByVal SectionName As String, ByVal KeyName As String, ByVal DefaultValue As String) As String
      Dim lpReturnedString As String = Strings.Space(2048)
      Dim length As Integer = GetPrivateProfileString(SectionName, KeyName, DefaultValue, lpReturnedString, lpReturnedString.Length, INIPath)
      If length > 0 Then
        Return lpReturnedString.Substring(0, length)
      End If
      Return ""
        End Function
     
        Public Shared Sub INIWrite(ByVal INIPath As String, ByVal SectionName As String, ByVal KeyName As String, ByVal TheValue As String)
      WritePrivateProfileString(SectionName, KeyName, TheValue, INIPath)
        End Sub
     
    End Class
    Comment l'utiliser :

    1- Ecrire une valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cls_Ini.INIWrite("C:\YourIniFile.ini", "Section0", "Key0","Value0")
    2- Lire une valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Val as string = Cls_Ini.INIRead("C:\YourIniFile.ini", "Section0","Key0")
    3- Exemple de contenu du fichier .ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Section0]
    Key0=Value0

    A+

  6. #6
    Membre averti Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Points : 304
    Points
    304
    Par défaut
    Utilise plutôt un fichier XML si tu as le choix.
    Le frameWork te permettra d'aller bien plus loin dans le traitement de celui-ci. (XSD.exe et création auto des classes, serialisation, ...).

    Les fichiers INI n'existent plus

  7. #7
    Expert confirmé
    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
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par The_Big_Lebowski Voir le message
    Utilise plutôt un fichier XML si tu as le choix.
    Le frameWork te permettra d'aller bien plus loin dans le traitement de celui-ci. (XSD.exe et création auto des classes, serialisation, ...).

    Les fichiers INI n'existent plus
    Personnellement j'utilise cette librairie : http://www.codeproject.com/Articles/...simple-at-last

    mais il demandait de l'aide sur les fichiers .ini alors je pense qu'il faut avant tout l'orienter dans cette voie avant de lui proposer une alternative.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Le code de wallace1 m'intéresse. Merci. J'essaie de le mettre en place mais je pense que ça doit aller

    Le XML après me paraît peut être un peu "trop" par rapport a ce que je veux stocker (même pas 10 valeurs).
    Mais c'est toujours intéressant de savoir que c'est un peu mieux

  9. #9
    Membre expérimenté
    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
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Si c'est pour stocker quelques valeurs de type simple, il existe aussi les paramètres utilisateur et application : My.Settings
    Simple et efficace.

    eb.

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

Discussions similaires

  1. écriture dans un fichier ini deja existant
    Par azräel dans le forum VB.NET
    Réponses: 1
    Dernier message: 30/04/2009, 14h40
  2. Erreur lors de l'écriture dans l'ini
    Par LuckyLuke56 dans le forum Outils
    Réponses: 1
    Dernier message: 25/08/2008, 20h12
  3. Écriture dans un DBgrid quand utilise un query comme dataset
    Par dcayou dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 22h22
  4. Sauvegarde std::vector dans un .ini
    Par mick74 dans le forum MFC
    Réponses: 2
    Dernier message: 12/05/2004, 13h30
  5. Comment renseigner la variable autocommit dans my.ini
    Par Charroin dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/09/2003, 15h23

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