Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    47

    [VB.NET] Classe File Ini

    Ho trovato in rete la seguente classe che consente di scrivere e leggere nei file .ini:

    codice:
        ' API functions
        Private Declare Ansi Function GetPrivateProfileString _
          Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
          (ByVal lpApplicationName As String, _
          ByVal lpKeyName As String, ByVal lpDefault As String, _
          ByVal lpReturnedString As System.Text.StringBuilder, _
          ByVal nSize As Integer, ByVal lpFileName As String) _
          As Integer
    
        Private Declare Ansi Function WritePrivateProfileString _
          Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
          (ByVal lpApplicationName As String, _
          ByVal lpKeyName As String, ByVal lpString As String, _
          ByVal lpFileName As String) As Integer
    
        Private Declare Ansi Function GetPrivateProfileInt _
          Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _
          (ByVal lpApplicationName As String, _
          ByVal lpKeyName As String, ByVal nDefault As Integer, _
          ByVal lpFileName As String) As Integer
    
        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
    
        Dim strFilename As String
    
        ' Constructor, accepting a filename
        Public Sub New(ByVal Filename As String)
    
            strFilename = Filename
    
        End Sub
    
        ' Read-only filename property
        ReadOnly Property FileName() As String
    
            Get
                Return strFilename
            End Get
    
        End Property
    
        Public Function GetString(ByVal Section As String, ByVal Key As String, ByVal [Default] As String) As String
    
            ' Returns a string from your INI file
            Dim intCharCount As Integer
            Dim objResult As New System.Text.StringBuilder(256)
    
            intCharCount = GetPrivateProfileString(Section, Key, _
               [Default], objResult, objResult.Capacity, strFilename)
    
            If intCharCount > 0 Then GetString = _
               Left(objResult.ToString, intCharCount)
    
        End Function
    
        Public Function GetInteger(ByVal Section As String, ByVal Key As String, ByVal [Default] As Integer) As Integer
    
            ' Returns an integer from your INI file
            Return GetPrivateProfileInt(Section, Key, _
               [Default], strFilename)
    
        End Function
    
        Public Function GetBoolean(ByVal Section As String, ByVal Key As String, ByVal [Default] As Boolean) As Boolean
    
            ' Returns a boolean from your INI file
            Return (GetPrivateProfileInt(Section, Key, _
               CInt([Default]), strFilename) = 1)
    
        End Function
    
        Public Sub WriteString(ByVal Section As String, ByVal Key As String, ByVal Value As String)
    
            ' Writes a string to your INI file
            WritePrivateProfileString(Section, Key, Value, strFilename)
            Flush()
    
        End Sub
    
        Public Sub WriteInteger(ByVal Section As String, ByVal Key As String, ByVal Value As Integer)
    
            ' Writes an integer to your INI file
            WriteString(Section, Key, CStr(Value))
            Flush()
    
        End Sub
    
        Public Sub WriteBoolean(ByVal Section As String, ByVal Key As String, ByVal Value As Boolean)
    
            ' Writes a boolean to your INI file
            WriteString(Section, Key, CStr(CInt(Value)))
            Flush()
    
        End Sub
    
        Private Sub Flush()
    
            ' Stores all the cached changes to your INI file
            FlushPrivateProfileString(0, 0, 0, strFilename)
    
        End Sub
    Non capisco perchè l'ambiente di sviluppo sottolinea "End Function" relativo alla funzione "GetString" con il seguente messaggio:


    La funzione 'Getstring' non restituisce un valore in tutti i percorsi del codice. E' possibile che venga restituita un'eccezione dovuta a un riferimento con valore null in fase di esecuzione quando viene utilizzato il risultato.
    Come è possibile eliminare questo messaggio?

  2. #2
    Modifica la riga
    codice:
           If intCharCount > 0 Then GetString = _
               Left(objResult.ToString, intCharCount)
    in
    codice:
           If intCharCount > 0 Then Return Left(objResult.ToString, intCharCount) Else Return ""
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    47
    Grazie, così è ok!!

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Perche usare col ner i .ini e non i file di configurazione ???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.