OVH Cloud OVH Cloud

Pb ave file INI

4 réponses
Avatar
Sundowne
'jour
L'installation de IE7 m'a obligé à "revoir" un vieux programme. Celui ci
utilise comme fichier de configuration un fichier INI . Les paramètres sont
retrouvés et écrits avec les API classiques GetProfileString et autres.
Je aperçois que le fichier INI est tronçonner très souvent, la fin manquant.
Comme si, à la fermeture du prgm, un buffer en écriture n'était pas vidé. La
taille du fichier INI est de 7K, loin donc des 64K maximum. Je n'ai pas
réussi à trouvé une quelconque info sur le sujet.
Merci de votre aide à résoudre ce Pb.
@+

4 réponses

Avatar
jm
"Sundowne" wrote in message
news:
'jour
L'installation de IE7 m'a obligé à "revoir" un vieux programme. Celui ci
utilise comme fichier de configuration un fichier INI . Les paramètres
sont retrouvés et écrits avec les API classiques GetProfileString et
autres.
Je aperçois que le fichier INI est tronçonner très souvent, la fin
manquant. Comme si, à la fermeture du prgm, un buffer en écriture n'était
pas vidé. La taille du fichier INI est de 7K, loin donc des 64K maximum.
Je n'ai pas réussi à trouvé une quelconque info sur le sujet.
Merci de votre aide à résoudre ce Pb.
@+



Hello,

est-ce que par hasard les informations de cet
article de la FAQ te serait utile?
http://faq.vb.free.fr/index.php?question2

Notamment, tes variables ont elles des tailles
suffisantes?

Sinon, j'emploie de nombreux fichiers ini dans
divers programmes, et je n'ai jamais rencontré
de problèmes particuliers, y compris pour des
fichiers volumineux.

Je ne trouve pas non plus dans la KB d'informations
concernant un problème avec ces API.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Sundowne
jm wrote:
:: Hello,
::
:: est-ce que par hasard les informations de cet
:: article de la FAQ te serait utile?
:: http://faq.vb.free.fr/index.php?question2
::
:: Notamment, tes variables ont elles des tailles
:: suffisantes?
::
:: Sinon, j'emploie de nombreux fichiers ini dans
:: divers programmes, et je n'ai jamais rencontré
:: de problèmes particuliers, y compris pour des
:: fichiers volumineux.
::
:: Je ne trouve pas non plus dans la KB d'informations
:: concernant un problème avec ces API.
::
:: --
:: Jean-marc Noury (jean_marc_n2)
:: Microsoft MVP - Visual Basic
:: mailto: remove '_no_spam_' ;
:: FAQ VB: http://faq.vb.free.fr/

'Merci de ta réponse. Je crois bien que Q68827 Updating Cached Private
Profiles (.INI Files). contient la réponse à mon probléme. En fermeture de
logiciel il y a des écritures dans la file INI et je n'utilise pas
WritePrivateProfileString. Je vais tester dans ce sens.
@+
Avatar
Sundowne
::
:: 'Merci de ta réponse. Je crois bien que Q68827 Updating Cached
:: Private Profiles (.INI Files). contient la réponse à mon probléme.
:: En fermeture de logiciel il y a des écritures dans la file INI et je
:: n'utilise pas WritePrivateProfileString. Je vais tester dans ce sens.
:: @+

'jour
Q68827 Updating Cached Private Profiles (.INI Files) est bien la solution!
J'ai trouvé sur http://www.wiredesigns.be/tutorials.php?a=view&idQ

la fonction suivante qui résout le pb.
Private Declare Ansi Function FlushPrivateProfileString _
Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As Integer, _
ByVal lpKeyName As Integer, ByVal lpString As Integer, _
ByVal lpFileName As String) As Integer

Private Sub Flush()
' Stores all the cached changes to your INI file
FlushPrivateProfileString(0, 0, 0, strFilename)
End Sub

J'ai lu par ailleurs qu'il y avait effectivement un pb de cache non
sauvegardé survenant lorsque l'on écrivait dans la file ini moins de 2
secondes avant la fermeture du prgm!!!

@+ et encore merci!
Avatar
Jean-marc
"Sundowne" a écrit dans le message de news:

::
:: 'Merci de ta réponse. Je crois bien que Q68827 Updating Cached
:: Private Profiles (.INI Files). contient la réponse à mon probléme.
:: En fermeture de logiciel il y a des écritures dans la file INI et je
:: n'utilise pas WritePrivateProfileString. Je vais tester dans ce sens.
:: @+

'jour
Q68827 Updating Cached Private Profiles (.INI Files) est bien la solution!
J'ai trouvé sur http://www.wiredesigns.be/tutorials.php?a=view&idQ

la fonction suivante qui résout le pb.
Private Declare Ansi Function FlushPrivateProfileString _
Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As Integer, _
ByVal lpKeyName As Integer, ByVal lpString As Integer, _
ByVal lpFileName As String) As Integer

Private Sub Flush()
' Stores all the cached changes to your INI file
FlushPrivateProfileString(0, 0, 0, strFilename)
End Sub

J'ai lu par ailleurs qu'il y avait effectivement un pb de cache non
sauvegardé survenant lorsque l'on écrivait dans la file ini moins de 2
secondes avant la fermeture du prgm!!!




Hello,

Merci à toi pour le feedback!

Nous allons mettre à jour la question 32 de la FAQ
pour y inclure cette intéressante remarque!

Bien à toi,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/