Probleme de lecture avec un fichier .ini

Résolu
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010 - 15 juil. 2005 à 18:44
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010 - 15 juil. 2005 à 20:20
Bonjour, j'ai un probleme avec un fichier .ini pour la lecteur d'une valeur qui est "RGB (100, 150, 200), la lecture se passe tres bien si c'est pour metre cette valeur dans un textbox, mais pas quand que je le recupére et le met en valeur de "me.BackColor = " sa me met une erreur type mismatch. Voici le code.

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long


Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private Function EcritDansFichierIni(Section As String, Cle As String, Valeur As String, Fichier As String) As Long
EcritDansFichierIni = WritePrivateProfileString(Section, Cle, Valeur, Fichier)
End Function
Private Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, _
Optional ValeurParDefaut As String = "") As String


Dim strReturn As String
strReturn = String(255, 0)
GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)


End Function
Private Sub Command2_Click()
leftParam = LitDansFichierIni("test", "cle1", "E:\Documents and Settings\Comtention\Bureau\test.ini", 100)
Text1.Text = leftParam ' Sa sa marche
Me.BackColor = leftParam 'Error type mismatch
End Sub

Mon .ini est
[Test]
cle1=RGB (100, 150, 200)

Merci d'avance pour votre aide

6 réponses

Utilisateur anonyme
15 juil. 2005 à 18:57
En faite tu essai d'attribué Me.BackColor = "RGB(100,150,200)"

Me.BackColor de type long et "RGB(100,150,200)" de type String

Il faut donc décomposer le "RGB(100,150,200)" pour obtenire les composantes Rouge,Vert et Bleu

Ensuite utilise la fonction RGB avec les composantes extraites précédament

Me.BackColor = RGB(ComposanteRouge,ComposanteVert,ComposanteBleu)

ChRb
3
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
15 juil. 2005 à 19:03
A ok je vais essailier, mais tu vois si je fait

Dim couleur as string

Private Sub Form_Load()
couleur = "rgb(100,150,200)"
end sub

Private Sub Command1_Click()
me.backcolor=couleur
end sub

Et bien sa marche alors que c'est une string
0
Utilisateur anonyme
15 juil. 2005 à 19:18
C'est étrange j'ai esseyer ton code
précédent et ca marche pas chez moi il me retoure "Type incompatible"
ce qui me parait très normal.


ChRb
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
15 juil. 2005 à 19:31
essai sans les ""
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
15 juil. 2005 à 20:18
Sans les "" il est sûr que ça marchera. La fonction RGB fera la conversion
La fonction RGB retournera la valeur long de la couleur soit ici RBG(100,150,200) = 13145700
La variable couleur aura donc pour valeur "13145700" et non "RBG(100,150,200)"VB fera donc la conversion de strnig vers long.soit Me.backcolor 13145700 et non me.backColor "RBG(100,150,200)"

ChRb
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
15 juil. 2005 à 20:20
aaaaa dacord, j'ai fait comme ta dit au dessus avec les composantes et sa marche bien alors je te remercie beaucoups a bientot.
0
Rejoignez-nous