net-pratique
Messages postés20Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention21 avril 2013 23 oct. 2006 à 19:02
Bonjour, quand je test votre source dans un projet simple cela fonctionne parfaitement, mais j'essaie d'adapter votre code dans un de mes projets, utilisant un autre module de classe avec Option Explicit, il est impossible de lire le fichier INI.
L'écriture ne pose pas de problème !
Le programme bloque sur :
Public Function GetIni(ByVal section As String, ByVal Variable As String) As Variant
Dim strRetour As String
Dim SectionArr() As String, m As Integer
Dim longueur As Integer
If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
strRetour = String(65000, Chr(0))
longueur = GetPrivateProfileString(section, Variable, "", strRetour, Len(strRetour), fichier_ini)
GetIni = Left$(strRetour, longueur) ?********ici sur left$: erreur de compilation : le caractère de déclaration de type ne correspond pas au type de données déclaré.**************
SectionArr = Split(GetIni, vbNullChar)
For m = 0 To UBound(SectionArr)
GetIni = SectionArr(m)
Next m
End If
End Function
Merci à vous.
Laurans
objectifweb
Messages postés25Date d'inscriptionmardi 22 décembre 2009StatutMembreDernière intervention 6 janvier 2010 27 sept. 2005 à 16:57
Bonjour,
Quelqu'un à une adaptation pour le vb.net ?
Amicalement
Patrick
marckisscool
Messages postés6Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention26 septembre 2005 26 sept. 2005 à 06:49
Pour répondre à RENFIELD , il n'est pas necessaire d'utiliser ces fonctions de Get et let puisque si tu ecrit ce code tu auras le même resultat(ecriture que je trouve plus facile à lire quand tu relis un code basé uniquement sur ces propriétés,c'est la raison de mon choix):
dim INI as new DLLfichierini
INI.Set_fichier App.path & "\config.ini"
Et (si dans le même sub)
MsgBox INI.Get_fichier
Mais ta solution peut etre appliquée si tu préfères ce genre d'utilisation :)
silkscalp
Messages postés27Date d'inscriptionlundi 30 octobre 2000StatutMembreDernière intervention20 janvier 2011 21 sept. 2005 à 19:10
Je vais vous donner la source d'un code (dès que j'aurais rebooter sous windows) servant à creer un fichier ini automatiquement celui ci n'existe pas au lancement de l'Appli, permettant de se servir des info du fichier ini (evidemment) et qui est le fruit d'amélioration au fur et a mesure du temps.
C'est le source de mon ancien supérieur aussi dois-je lui demander son autorisation avant de le produire. Mais ce module utilie enormément de fonction et d'API pour verifier les / en double ou verifier qu'il n'y en a qu'un, pour recuperer les chemin, etc...
J'espère que mon chef sera d'accord pour le publier car il est vraiment complet...
Sinon je converse dans le sens que le partage des connaissances est bébéfiques à tout le monde...
++
Silk - Sky
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 19 sept. 2005 à 09:41
Dommage que tu n'utilise pas des propriétés :
Public Property Get fichier() As String
Public Property Let fichier(ByRef nom_fichier As String)
on pourrait ainsi utiliser :
INI.fichier = App.path & "\config.ini"
et
MsgBox INI.fichier
23 oct. 2006 à 19:02
L'écriture ne pose pas de problème !
Le programme bloque sur :
Public Function GetIni(ByVal section As String, ByVal Variable As String) As Variant
Dim strRetour As String
Dim SectionArr() As String, m As Integer
Dim longueur As Integer
If fichier_ini <> "" And Dir(fichier_ini) <> "" Then
strRetour = String(65000, Chr(0))
longueur = GetPrivateProfileString(section, Variable, "", strRetour, Len(strRetour), fichier_ini)
GetIni = Left$(strRetour, longueur) ?********ici sur left$: erreur de compilation : le caractère de déclaration de type ne correspond pas au type de données déclaré.**************
SectionArr = Split(GetIni, vbNullChar)
For m = 0 To UBound(SectionArr)
GetIni = SectionArr(m)
Next m
End If
End Function
Merci à vous.
Laurans
27 sept. 2005 à 16:57
Quelqu'un à une adaptation pour le vb.net ?
Amicalement
Patrick
26 sept. 2005 à 06:49
dim INI as new DLLfichierini
INI.Set_fichier App.path & "\config.ini"
Et (si dans le même sub)
MsgBox INI.Get_fichier
Mais ta solution peut etre appliquée si tu préfères ce genre d'utilisation :)
21 sept. 2005 à 19:10
C'est le source de mon ancien supérieur aussi dois-je lui demander son autorisation avant de le produire. Mais ce module utilie enormément de fonction et d'API pour verifier les / en double ou verifier qu'il n'y en a qu'un, pour recuperer les chemin, etc...
J'espère que mon chef sera d'accord pour le publier car il est vraiment complet...
Sinon je converse dans le sens que le partage des connaissances est bébéfiques à tout le monde...
++
Silk - Sky
19 sept. 2005 à 09:41
Public Property Get fichier() As String
Public Property Let fichier(ByRef nom_fichier As String)
on pourrait ainsi utiliser :
INI.fichier = App.path & "\config.ini"
et
MsgBox INI.fichier