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

Framework .NET Discussion :

Comment concaténer des chaînes issues d'un fichier ini ?


Sujet :

Framework .NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Comment concaténer des chaînes issues d'un fichier ini ?
    Bonjour,

    Je n'arrive pas à concaténer des chaînes de caractères récupérées dans un fichier .ini. J'utilise la fonction GetPrivateProfileString (kernell32.dll) pour récupérer les valeurs et si jessaie par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Str_valeur1 As String
    Dim Str_valeur2 As String
     
    Str_valeur1 = Space(255)
    Int_Lecteur = GetPrivateProfileString	(Str_Rubrique, Str_Clef, Str_ValeurParDefaut, Str_Valeur1, 255, Str_Localisation)
    Str_valeur1 = Trim(Str_Valeur)
     
    Str_valeur2 = Space(255)
    Int_Lecteur = GetPrivateProfileString	(Str_Rubrique, Str_Clef, Str_ValeurParDefaut, Str_Valeur2, 255, Str_Localisation)
    Str_valeur2 = Trim(Str_Valeur)
     
    Str_Concatenation = Str_valeur1 & " test " & Str_valeur2
    la chaine Str_valeur2 n'est pas concaténée. Les variables Str_Valeur1 et Str_Valeur2 contiennent bien les bonnes valeurs.
    Pourquoi ? Comment résoudre le problème ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu devrais peut être ajouter la ligne suivant:

    Dim Str_Concatenation as String ;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Heu... oui je l'ai pas écrit dans le code d'exemple mais toutes mes variables sont déclarées.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Neit_Sabes
    la chaine Str_valeur2 n'est pas concaténée. Les variables Str_Valeur1 et Str_Valeur2 contiennent bien les bonnes valeurs.
    Pourquoi ? Comment résoudre le problème ?
    J'ai rien compris sur ce passage...
    Que contient Str_Concatenation ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Str_concatenation devrait contenir la concatenation des trois chaines :
    Str_valeur1, " test ", Str_valeur2.
    Mais j'obtiens comme résultat la concaténation de Str_valeur1 et " test " seulement

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Points : 132
    Points
    132
    Par défaut
    Essaye de connaître la valeur de Str_valeur2, pour un peu elle ne contient rien du tout

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    j'ai vérifié en débogant, toutes les variables sont bien affectées.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Pistes
    J'ai un début de piste mais pas encore de solution.
    1) En déboguant je m'apercois que les variables de type String sont décrites ainsi :

    alors que mes variables posant problème sont décrites ainsi :

    pas de " à la fin. Qu'est-ce que cela signifie ?

    2) De plus, si j'affecte la variable à un composant d'une forme et que je récupère ensuite la valeur Text du composant pour la concaténation (suis-je bien clair ?) alors il n'y a plus de problème ....

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Points : 132
    Points
    132
    Par défaut
    A mon avis ta méthode GetProfile machin chose ne doit pas terminer la chaine correctement.
    En C++ une chaine se termine par un '\0'.
    Essaye de rajouter ce caratère a ta chaine qui pose problème...

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Points : 132
    Points
    132
    Par défaut
    Je viens de trouver un exemple en VB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub BtnWriteReadINI_Click()
    Dim Ret As String, NC As Long
    'Ecrit le paramètre dans le fichier ini (c:\MonApplication.ini) sous Setup -> User
    WritePrivateProfileString "Setup", "User", "CarSoftAja", "c:\MonApplication.ini"
    'Crée un tampon
    Ret = String(255, 0)
    'Retrouve le paramètre dans le fichier ini
    NC = GetPrivateProfileString("Setup", "User", "Default", Ret, 255, "C:\MonApplication.ini")
    'NC est le nombre de caractères copié dans le tampon
    If NC <> 0 Then Ret = left$(Ret, NC)
    'Visualise le paramètre lu dans le fichier ini
    MsgBox Ret
    'Efface le fichier
    Kill "c:\MonApplication.ini"
    Regarde le test qui est fait sur le GetPrivateProfilString.
    Si la fonction a récupéré quelque chose alors la chaine = left quelque chose.

    Le problème doit se situer ici.
    Bonne chance

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé

    En fait il y avait un caractère à la fin de la chaine du genre retour chariot ou autre. En enlevant le dernier caractère tout fonctionne.

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

Discussions similaires

  1. Concaténer des chaînes et des contenus de fichiers
    Par gvdmoort dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 01/08/2013, 17h08
  2. Réponses: 8
    Dernier message: 13/09/2006, 17h21
  3. Réponses: 5
    Dernier message: 22/03/2006, 13h25
  4. Réponses: 4
    Dernier message: 06/09/2005, 21h41
  5. [D6] Comment remplacer des chaînes dans un fichier ?
    Par fabien25 dans le forum Langage
    Réponses: 4
    Dernier message: 15/06/2005, 13h37

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