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 :

Lecture dans .INI impossible de recuperer correctement la chaine de caractere


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Par défaut Lecture dans .INI impossible de recuperer correctement la chaine de caractere
    Bonjour, voilà mon souci !!

    J'ai un fichier INI contenant plusieurs parametre que je recupere grace à Getprivate profilestring, j'ai donc une boucle qui me permet de recuperer les parametre les uns apres les autres.
    Mon probleme est que lorsque je recupere un parametre il me met des espaces derriere (Je precise que Trim(variable) ne fonctionne pas dans ce cas, je ne sais pas pourquoi ).
    Je recupere donc le nb de caractere dans une variable, puis je tronque ma varaiable.

    Mon pb est que le 1er coup ca marche mais au coup suivant ma varaiable nb de caractere prend une valeur completement absurde, voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'DECLARATION
        'Fonction lisant une string
    '------------------------------
        Private Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Long

    MA FONCTION QUI VA LIRE MA CHAINE DANS LE INI

    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
       Function LIRE(ByVal cAppName As String, ByVal cKeyName As String, ByVal cKeyDefault As String, ByRef cKeyValue As String, ByVal cProfName As String) As String
     
     
            Const sLongueur As Short = 255
            Dim NB_CHAR As String
     
            LIRE = GetPrivateProfileString(cAppName, cKeyName, cKeyDefault, cKeyValue, sLongueur, cProfName)
     
            NB_CHAR = LIRE  'me donne le nb de caractere visible de ma chaine
            'test si la chaine n'est pas vide ou inexistante
            If LIRE = 0 Then
     MsgBox("Le fichier INI est manquant ou incomplet ( " + GetCurrentDirectory() + cIniFile + " )", 16, "Lien BDD")
            End
            End If
     
     
            'retourne la valeur de ma chaine
            LIRE = cKeyValue 'ma chaine sur 255 caractere
     
            LIRE = LSet(LIRE, NB_CHAR) ma chaine avec le vrai nb de caractere
     
    End function
    MA FONCTION QUI RECUPERE LES VALEURS

    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
     
        Private Sub connexion_SQL_param()
            Dim CurrentDirectory As String
            CurrentDirectory = GetCurrentDirectory()
            cKey = "serveur"
            reponse = LIRE(cRubrique, cKey, "", cRepertoire, CurrentDirectory & cIniFile)
            serveur_SQL = reponse
     
            cKey = "database"
            reponse = LIRE(cRubrique, cKey, "", cRepertoire, CurrentDirectory & cIniFile)
            database_SQL = reponse
     
            cKey = "user"
     
    ......
        End sub


    Merci pour votre aide

  2. #2
    Membre expérimenté Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Par défaut
    salut,

    il vaut mieux mettre ton code entre les balises [code] grace au boutton #.

    juste pour avoir plus de reponse

    Bonne courage

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Contrairement à VB6 la déclaration de GetPrivateProfileString (via le Declare) doit retourner un Integer et non un Long.

    Sous VB.NET, entier 32 bit -> Integer. Entier 64 bit -> Long.

    Donc pour toutes les Api windows qui utiilsent des Long que l'on souhaite utiliser en VB.NET via l'instruction Declare, il faut utilser Integer.

Discussions similaires

  1. [AJAX] Recuperation informations type chaine de caractere
    Par Katachana dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/07/2008, 15h03
  2. Réponses: 2
    Dernier message: 12/03/2008, 01h26
  3. Réponses: 31
    Dernier message: 02/11/2007, 16h18
  4. balises dans MYSQL lecture dans Flash impossible pourquoi?
    Par tigerdidier dans le forum Dynamique
    Réponses: 1
    Dernier message: 19/09/2007, 12h01
  5. balises dans MYSQL lecture dans Flash impossible pourquoi?
    Par tigerdidier dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 19/09/2007, 00h31

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