LECTURE D'UN INI FILE EN VB.NET

ronanry Messages postés 190 Date d'inscription lundi 25 novembre 2002 Statut Membre Dernière intervention 22 décembre 2009 - 15 janv. 2003 à 18:33
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 4 oct. 2012 à 13:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/5665-lecture-d-un-ini-file-en-vb-net

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
4 oct. 2012 à 13:34
fichier zip parfaitement valide pour moi
cs_janhsh Messages postés 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015
4 oct. 2012 à 12:45
Le fichier ZIP est invalide
ronanry Messages postés 190 Date d'inscription lundi 25 novembre 2002 Statut Membre Dernière intervention 22 décembre 2009
21 juil. 2011 à 22:28
Petite erreur detectée :
Public Function ReadByteArray(ByVal Section As String, ByVal Key As String, ByVal Length As Integer) As Byte()
If Length > 0 Then
Try
Dim Buffer(Length - 1) As Byte
If GetPrivateProfileStruct(Section, Key, Buffer, Buffer.Length, Filename) = 0 Then
Return Nothing
Else
Return Buffer
End If
Catch
Return Nothing
End Try Else '<cette partie n'existait pas et donc rien n'etait retourné si length0
Return Nothing
End If
End Function
circular Messages postés 17 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2010
20 oct. 2009 à 19:35
J'ai trouvé un bug dans la fonction GetSectionNames, et j'ai recopié ce bug dans la fonction GetSection. Il faut remplacer

BuffStr.Substring(PrevPos + 1, Length - PrevPos)

par

BuffStr.Substring(PrevPos + 1, Length - PrevPos - 1)

dans les deux fonctions, sinon il y a un caractère zéro inclus à la fin de la chaine de caractère.
circular Messages postés 17 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2010
18 oct. 2009 à 19:19
Il faut aussi rajouter la référence à la fonction GetPrivateProfileSection, comme ceci :

<DllImport("KERNEL32.DLL", EntryPoint:="GetPrivateProfileSectionA", SetLastError:=False, CharSet:=CharSet.Ansi, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
Private Shared Function GetPrivateProfileSection(ByVal lpAppName As String, ByVal lpReturnedString As Byte(), ByVal nSize As Integer, ByVal lpFileName As String) As Integer
End Function
Afficher les 36 commentaires