Sauvegarder un.ini avec plusieurs textbox dedans

foliop Messages postés 191 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 27 octobre 2008 - 17 sept. 2004 à 11:11
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 - 20 sept. 2004 à 13:58
salut

en fait jai un formulaire avec plusieurs textbox

jaimerai pouvoir les enregistrer dans un fichier .ini et ensuite lire ligne par ligne

c possible ?

12 réponses

yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
17 sept. 2004 à 11:29
tu doit trouvé pas mal d'info sur comment sauvegarder dans un fichier ini et comment relire...

les API à utiliser sont :
Public 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
Public 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


Ce qu'il te faut savoir c'est que :
lpApplicationName : correspond à la section
lpKeyName : à la clé
lpDefault : à la valeur par défaut retournée (si tu en veux une)
lpReturnedString : est un buffer de taille prédéfini genre Dim Buffer as String *255 , 255 étant le nombre de caractères
nSize : à la taille de ton buffer (ici 255)
et lpFileName : au chemin de ton fichier ini (nom du fichier compris)

voilà:
kan tu ve écrire tu fais :
WritePrivateProfileString "TaSection", "TaClé", TaValeur , Chemin & "\TonFichier.ini"

et kan tu veux lire:
Longueur = GetPrivateProfileString("TaSection", "TaClé", "TaValeurParDefaut" , TonBuffer, Len(TonBuffer), Chemin & "\TonFichier.ini")
Resultat = Left(TonBuffer, Longueur)

Voilà , j'espère avoir répondu à ta question....

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
foliop Messages postés 191 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 27 octobre 2008
17 sept. 2004 à 11:32
par exemple jai des texbox qui sappele box1 et box2

comment je fais pour ecrire dans le fichier ini les valeurs des 2box et ensuite lire la box1 qqpart et la box2 autre part ?

desolé mais je debute
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 sept. 2004 à 11:53
salut,

Pour ecrire:

    
Dim FichierIni As Byte
FichierIni = FreeFile
Open NomDeTonFichier For Append As FichierIni 
FichierIni  #FicheroGatewaylog, Box1.text
FichierIni  #FicheroGatewaylog, Box2.text
Close FichierIni 


POur Lire
Dim FichierIni as Byte
Dim StrLigne() as string
redim strLigne(0)
FichierIni=freefile
Open NomDeTonFichier For Input Access Read As FichierIni
While Not Eof(FichierIni)
    Line input #FichierIni, StrLigne(Ubound(strLigne))
redim preserve StrLigne(Ubound(strligne) + 1)

Wend 


LE seul truc c est que can tu le lit, le dernier element de ton tableau est vide :(.

-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
17 sept. 2004 à 11:57
pour ecrire tu as k'as faire
WritePrivateProfileString "SaveBox", "Box1", CStr(Box1.Text) , App.Path & "\FicBox.ini"
WritePrivateProfileString "SaveBox", "Box2", CStr(Box2.Text) , App.Path & "\FicBox.ini"


kan tu voudra relire les valeurs tu n'auras ka faire:
dim Buffer255 as string * 255
dim Longueur as integer

Longueur = GetPrivateProfileString("SaveBox", "Box1", "" , Buffer255, Len(255), App.Path & "\FicBox.ini")
Box1.Text = Left(Buffer255, Longueur)


de même pour ton ton 2ème TextBox:
dim Buffer255 as string * 255
dim Longueur as integer

Longueur = GetPrivateProfileString("SaveBox", "Box2", "" , Buffer255, Len(255), App.Path & "\FicBox.ini")
Box2.Text = Left(Buffer255, Longueur)


et ainsi de suite....

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0

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

Posez votre question
foliop Messages postés 191 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 27 octobre 2008
17 sept. 2004 à 12:13
Private Sub btn_sauver_donnees_Click()
Public 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

WritePrivateProfileString "SaveBox", "Box1", CStr(Tex2.Text), App.Path & "C:\Documents and Settings\mickael\Mes documents\config.ini"
WritePrivateProfileString "SaveBox", "Box2", CStr(Text5.Text), App.Path & "C:\Documents and Settings\mickael\Mes documents\config.ini"
End Sub

jai fait ca mais ca marche pas
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
17 sept. 2004 à 13:31
tout en haut de ton code...Avant la première procédure tu tapes:
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


puis après tu tapes
Private Sub btn_sauver_donnees_Click()
WritePrivateProfileString "SaveBox", "Box1", CStr(Tex2.Text), App.Path & "C:\Documents and Settings\mickael\Mes documents\config.ini"
WritePrivateProfileString "SaveBox", "Box2", CStr(Text5.Text), App.Path & "C:\Documents and Settings\mickael\Mes documents\config.ini"
End Sub


la déclaration du API (fonction provenant d'une Dll externe) ne se déclare jamais dans un procédure...

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
17 sept. 2004 à 13:34
>>jrivet
ta solution n'est pas des plus simples....d'autant plus pour quelqu'un comme foliop qui débute....et puis c'est pas vraiment comme ça que l'on accede ou écrit dans un fichier ini....autant utiliser les fonctionnalité concernant les fichiers ini....du moins je pense...

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 sept. 2004 à 14:41
-> yomm

Ok admettons...
mais pour ecrire et lire dans un fichier pour moi le plus simple c est d utiliser les filesystemobject...

j ai trouve que justement c etait peu etre trop dificile pour un debutant comme tu dis si bien...

mais si tu crois que des:

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


c est plus simple alors libre a toi...

Tout le monde sait que quand tu debute tu utilise jamais ou presque jamais les fonction qu il faudrait...

Sur ce bonne journee...

-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big) :
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
17 sept. 2004 à 23:13
Pourquoi s'emm... avec un fichier ini ? et des API ?
On peut aussi écrire dans la registry (avec API), mais, si je m'en tiens à la question d'origine, peut-être il vaut mieux utiliser les instructions open ...... for output pour écrire et open ....... for input pour lire. Et cette solution sans API et paas moins rapide.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
foliop Messages postés 191 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 27 octobre 2008
18 sept. 2004 à 15:00
Private Sub btn_sauver_donnees_Click()
WritePrivateProfileString "SaveBox", "Box1", CStr(Tex2.Text), App.Path & "C:\Documents and Settings\mickael\Mes documents\config.ini"
WritePrivateProfileString "SaveBox", "Box2", CStr(Text5.Text), App.Path & "C:\Documents and Settings\mickael\Mes documents\config.ini"
End Sub

jai mis ca et ca marche pas
quand je clic sur sauvegarder ca me met :Erreur d'execution , un objet est recquis"
0
foliop Messages postés 191 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 27 octobre 2008
19 sept. 2004 à 20:53
sivouplai
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
20 sept. 2004 à 13:58
retire :
App.Path & 


Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
Rejoignez-nous