Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FICHIER INI + FONCTIONS SAUVE POSITION + TAILLE FENETRE, METTRE VAL VITE,...


Information sur la source

Catégorie :Fichier / Disque Niveau : Débutant Date de création : 23/03/2003 Date de mise à jour : 23/03/2003 17:39:49 Vu : 4 363

Note :
2,33 / 10 - par 3 personnes
2,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

'Voila un code que tout le monde cherche, même si il est déjà posté, il y'a qq plus...
'Copiez tout dans un module. L'utilisation est decrite plus bas

Utilisation :
Dans form_load, ou qq part, du moment que ce soit executé avec les readini, writeini,...
mettez :  INISetup app.path & "\" & "param.ini"

_______________


ECRIRE :     WriteINI "Section", "Clé", "Valeur"
LIRE :         Val = ReadINI ("Section", "Clé", "Valeur Défaut")
EFFACER CLé : DeleteKey "Section", "Clé"
EFFACER SECTION : DeleteSection "Section"
LIRE CLES : ReadKeys "Section"
LIRE SECTION : ReadSections

Sauvegarder positions, tailles d'une form :
IniPosSet Me     ' ou IniPosSet Form1   (remplacer form1 par nom de la form

Remettre positions, taille : IniPosGet Me


Sauvegarder vite une info ( sans taper la section) :
QuickSet "Cle", "Valeur"

Lire vite une info ( sans taper la section, defaut)
Val = QuickGet ("Clé")
 

Source

  • Option Explicit
  • 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
  • Dim m_File As String, m_Buffer As Long
  • Function DeleteKey(iSection As String, iKeyName As String)
  • If m_Buffer = 0 Then
  • Err.Raise "670", "INIReadWrite", "Erreur : Taille Buffer"
  • ElseIf m_File = "" Then
  • Err.Raise "670", "INIReadWrite", "Fichier non configuré"
  • End If
  • WritePrivateProfileString iSection, iKeyName, vbNullString, m_File
  • End Function
  • Public Function DeleteSection(iSection As String)
  • If m_Buffer = 0 Then
  • Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
  • ElseIf m_File = "" Then
  • Err.Raise "670", "INIReadWrite", "Nom de fichier fichier non indiqué"
  • End If
  • WritePrivateProfileString iSection, vbNullString, vbNullString, m_File
  • End Function
  • Public Function INISetup(iniFile As String)
  • m_Buffer = 400
  • m_File = iniFile
  • End Function
  • Public Function ReadIni(iSection As String, iKeyName As String, Optional iDefault As String)
  • If m_Buffer = 0 Then
  • Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
  • ElseIf m_File = "" Then
  • Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
  • End If
  • Dim ret As String, NC As Long
  • ret = String(m_Buffer, 0)
  • NC = GetPrivateProfileString(iSection, iKeyName, iDefault, ret, m_Buffer, m_File)
  • If NC <> 0 Then
  • ret = Left$(ret, NC)
  • Else
  • ret = ""
  • End If
  • ret = Replace(ret, "%%&&Chr(13)&&%%", vbCrLf)
  • ReadIni = ret
  • End Function
  • Public Function ReadKeys(iSection As String)
  • If m_Buffer = 0 Then
  • Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
  • ElseIf m_File = "" Then
  • Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
  • End If
  • Dim ret As String, NC As Long
  • ret = String(m_Buffer, 0)
  • NC = GetPrivateProfileString(iSection, vbNullString, vbNullString, ret, m_Buffer, m_File)
  • If NC <> 0 Then
  • ret = Left$(ret, NC - 1)
  • End If
  • ReadKeys = ret
  • End Function
  • Public Function ReadSections()
  • If m_Buffer = 0 Then
  • Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
  • ElseIf m_File = "" Then
  • Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
  • End If
  • Dim ret As String, NC As Long
  • ret = String(m_Buffer, 0)
  • NC = GetPrivateProfileString(vbNullString, vbNullString, vbNullString, ret, m_Buffer, m_File)
  • If NC <> 0 Then
  • ret = Left$(ret, NC - 1)
  • End If
  • ReadSections = ret
  • End Function
  • Public Sub WriteIni(iSection As String, iKeyName As String, iValue As Variant)
  • If m_Buffer = 0 Then
  • Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
  • ElseIf m_File = "" Then
  • Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
  • End If
  • iValue = CStr(iValue)
  • iValue = Replace(iValue, vbCrLf, "%%&&Chr(13)&&%%")
  • WritePrivateProfileString iSection, iKeyName, CStr(iValue), m_File
  • End Sub
  • Public Function IniPosSet(FormName As Form)
  • On Error Resume Next
  • If FormName.WindowState = 0 Then
  • WriteIni FormName.Name, "Left", FormName.Left
  • WriteIni FormName.Name, "Top", FormName.Top
  • WriteIni FormName.Name, "Width", FormName.width
  • WriteIni FormName.Name, "Height", FormName.Height
  • End If
  • If FormName.WindowState <> 1 Then WriteIni FormName.Name, "WindowState", FormName.WindowState
  • End Function
  • Public Function IniPosGet(FormName As Form)
  • On Error Resume Next
  • If ReadIni(FormName.Name, "WindowState", 0) = 2 Then
  • FormName.Left = ReadIni(FormName.Name, "Left")
  • FormName.Top = ReadIni(FormName.Name, "Top")
  • FormName.width = ReadIni(FormName.Name, "Width")
  • FormName.Height = ReadIni(FormName.Name, "Height")
  • FormName.WindowState = 2
  • Else
  • FormName.Left = ReadIni(FormName.Name, "Left")
  • FormName.Top = ReadIni(FormName.Name, "Top")
  • FormName.width = ReadIni(FormName.Name, "Width")
  • FormName.Height = ReadIni(FormName.Name, "Height")
  • FormName.WindowState = 0
  • End If
  • End Function
  • Public Function QuickSet(kKey As String, kVal As String)
  • On Error Resume Next
  • WriteIni "APP.GLOBAL", kKey, kVal
  • End Function
  • Public Function QuickGet(kKey As String) As String
  • On Error Resume Next
  • QuickGet = ReadIni("APP.GLOBAL", kKey)
  • End Function
Option Explicit

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
Dim m_File As String, m_Buffer As Long

Function DeleteKey(iSection As String, iKeyName As String)
    
    If m_Buffer = 0 Then
        Err.Raise "670", "INIReadWrite", "Erreur : Taille Buffer"
    ElseIf m_File = "" Then
        Err.Raise "670", "INIReadWrite", "Fichier non configuré"
    End If
    WritePrivateProfileString iSection, iKeyName, vbNullString, m_File
    
End Function

Public Function DeleteSection(iSection As String)
    
    If m_Buffer = 0 Then
        Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
    ElseIf m_File = "" Then
        Err.Raise "670", "INIReadWrite", "Nom de fichier fichier non indiqué"
    End If
    WritePrivateProfileString iSection, vbNullString, vbNullString, m_File
    
End Function

Public Function INISetup(iniFile As String)
    
    m_Buffer = 400
    m_File = iniFile
    
End Function

Public Function ReadIni(iSection As String, iKeyName As String, Optional iDefault As String)
    
    If m_Buffer = 0 Then
        Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
    ElseIf m_File = "" Then
        Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
    End If
    
    Dim ret As String, NC As Long
    
    ret = String(m_Buffer, 0)
    NC = GetPrivateProfileString(iSection, iKeyName, iDefault, ret, m_Buffer, m_File)
    
    If NC <> 0 Then
        ret = Left$(ret, NC)
    Else
        ret = ""
    End If
    
    ret = Replace(ret, "%%&&Chr(13)&&%%", vbCrLf)
    ReadIni = ret
    
End Function

Public Function ReadKeys(iSection As String)
    
    If m_Buffer = 0 Then
        Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
    ElseIf m_File = "" Then
        Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
    End If
    Dim ret As String, NC As Long
    
    ret = String(m_Buffer, 0)
    NC = GetPrivateProfileString(iSection, vbNullString, vbNullString, ret, m_Buffer, m_File)
    
    If NC <> 0 Then
        ret = Left$(ret, NC - 1)
    End If
    
    ReadKeys = ret
    
End Function

Public Function ReadSections()
    
    If m_Buffer = 0 Then
        Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
    ElseIf m_File = "" Then
        Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
    End If
    Dim ret As String, NC As Long
    
    ret = String(m_Buffer, 0)
    NC = GetPrivateProfileString(vbNullString, vbNullString, vbNullString, ret, m_Buffer, m_File)
    
    If NC <> 0 Then
        ret = Left$(ret, NC - 1)
    End If
    
    ReadSections = ret
    
End Function

Public Sub WriteIni(iSection As String, iKeyName As String, iValue As Variant)
    
    If m_Buffer = 0 Then
        Err.Raise "670", "INIReadWrite", "Erreur : taille buffer"
    ElseIf m_File = "" Then
        Err.Raise "670", "INIReadWrite", "Nom de fichier non indiqué"
    End If
    
    iValue = CStr(iValue)
    iValue = Replace(iValue, vbCrLf, "%%&&Chr(13)&&%%")
    WritePrivateProfileString iSection, iKeyName, CStr(iValue), m_File
    
End Sub


Public Function IniPosSet(FormName As Form)
    On Error Resume Next
    If FormName.WindowState = 0 Then
        WriteIni FormName.Name, "Left", FormName.Left
        WriteIni FormName.Name, "Top", FormName.Top
        WriteIni FormName.Name, "Width", FormName.width
        WriteIni FormName.Name, "Height", FormName.Height
    End If
    If FormName.WindowState <> 1 Then WriteIni FormName.Name, "WindowState", FormName.WindowState
End Function

Public Function IniPosGet(FormName As Form)
    On Error Resume Next
    If ReadIni(FormName.Name, "WindowState", 0) = 2 Then
        FormName.Left = ReadIni(FormName.Name, "Left")
        FormName.Top = ReadIni(FormName.Name, "Top")
        FormName.width = ReadIni(FormName.Name, "Width")
        FormName.Height = ReadIni(FormName.Name, "Height")
        FormName.WindowState = 2
    Else
        FormName.Left = ReadIni(FormName.Name, "Left")
        FormName.Top = ReadIni(FormName.Name, "Top")
        FormName.width = ReadIni(FormName.Name, "Width")
        FormName.Height = ReadIni(FormName.Name, "Height")
        FormName.WindowState = 0
    End If
End Function

Public Function QuickSet(kKey As String, kVal As String)
    On Error Resume Next
    WriteIni "APP.GLOBAL", kKey, kVal
End Function

Public Function QuickGet(kKey As String) As String
    On Error Resume Next
    QuickGet = ReadIni("APP.GLOBAL", kKey)
End Function

Conclusion

Voila, n'hesitez pas a noter la source et à mettre un commentaire.
 

Commentaires et avis

signaler à un administrateur
Commentaire de Noiretulipe le 23/03/2003 20:25:38

cela m'a tout a fait l'air bien sympatique ....
Un zip serais le bien venu pour de fanéant  come moi

signaler à un administrateur
Commentaire de Nestor le 23/03/2003 23:04:43

pas de commentaire + pas zip = 2/10

signaler à un administrateur
Commentaire de Alex001 le 13/04/2003 10:49:35

moi je trouve ca bien , pour les commentaire , les autres n'ont qu'a lire le code y a pas besoins de commentaire avec ce que tu as deja ecrit.

continue @+

signaler à un administrateur
Commentaire de jonathan2002 le 01/06/2003 15:28:36

c trop long, ya bien plus court ! 3/10

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.