Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Importare file .ini

  1. #1

    Importare file .ini

    Salve,
    il mio programma funziona perfettamente, ma devo fare una piccola variazione.
    In pratica ho un file .ini in MY.Resourse che contiene delle informazioni:

    [prefissi1]
    F=France ;informazioni
    I=Italy ;informazioni
    [prefissi2]
    IT=Italia ;informazioni
    DE=Germania ;informazioni
    UK=Regno Unito ;informazioni
    [prefissi3]
    RM0=Roma ;informazioni
    RM1=Roma ;informazioni
    MI0=Milano ;informazioni
    MI1=Milano ;informazioni

    In pratica una SUB deve prendere una stringa ed estrarvi un prefisso, poi leggere dal file .ini di cosa si tratta e visualizzarlo.
    Ora ho necessità di aggiornare il file prefissi.ini, ma non è possibile farlo perchè my.resources sono di solo lettura, quindi ho spostato il file in ROAMING ed ho anche preparato una sub che scarica una versione nuova a richiesta.

    IL PROBLEMA sta che se gli dico di leggere il file in my.resources funziona perfettamente, ma se gli dico di legerlo da ROAMING non va. Come mai?

    codice:
    Imports INI_InputOutput
    
    Public MyINI As INI
    
    MyINI = INI_IO.ReadINI(My.Resources.MyINI) 'istruzione all'evanto LOAD del FORM (funzionante)
    MyINI = INI_IO.ReadINI(Roaming & \"prefissi.ini") 'istruzione all'evanto LOAD del FORM (NON funzionante)
    ovviamente la variabile ROAMING è dichiarata e funziona in tutti gli altri casi, ho provato anche a mettere il file in C:\ e fare

    codice:
    MyINI = INI_IO.ReadINI("C:\prefissi.ini")
    ma non funziona.

    Avete un idea per risolvere????
    GRAZIE in anticipo

  2. #2
    Scusate, mi ero dimenticata che c'è una DLL da importare... ed apre solo file in My.Resource

  3. #3
    Io leggo dei file .ini e funziona perfettamente, il modulo che ha tutti i metodi per leggere e scrivere l'ho scaricato da internet... Adesso sono fuori casa ma piú tardi potrei postartelo...
    I database... la mia passione + o -

  4. #4
    Ecco il codice:

    codice:
    Module modIni    Private Declare Auto Function GetPrivateProfileString Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
        Private Declare Auto Function WritePrivateProfileString Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
    
    
        Private Function IniRead(ByVal Filename As String, ByVal Section As String, ByVal Key As String, Optional ByVal lpDefault As String = "", Optional ByVal bRaiseError As Boolean = False) As String
    
    
            Dim RetVal As String = New String(" ", 255)
    
    
            Dim LenResult As Integer
    
    
            Dim ErrString As String
    
    
            LenResult = GetPrivateProfileString(Section, Key, lpDefault, RetVal, RetVal.Length, Filename)
    
    
            If LenResult = 0 AndAlso bRaiseError Then
    
    
                If Not (System.IO.File.Exists(Filename)) Then
    
    
                    ErrString = "Impossibile aprire il file INI" & Filename
    
    
                Else
    
    
                    ErrString = "La sezione o la chiave sono errate oppure l’accesso al file non è consentito"
    
    
                End If
    
    
                Throw New Exception(ErrString)
    
    
            End If
    
    
            Return RetVal.Substring(0, LenResult)
    
    
        End Function
    
    
        Private Function IniWrite(ByVal Filename As String, ByVal Section As String, ByVal Key As String, ByVal Value As String, Optional ByVal bRaiseError As Boolean = False) As Boolean
    
    
            Dim LenResult As Integer
    
    
            Dim ErrString As String
    
    
            LenResult = WritePrivateProfileString(Section, Key, Value, Filename)
    
    
            If LenResult = 0 And bRaiseError Then
    
    
                If Not (System.IO.File.Exists(Filename)) Then
    
    
                    ErrString = "Impossibile aprire il file INI" & Filename
    
    
                Else
    
    
                    ErrString = "Accesso al file non consentito"
    
    
                End If
    
    
                Throw New Exception(ErrString)
    
    
            End If
    
    
            Return IIf(LenResult = 0, False, True)
    
    
            End
    
    
        End Function
    
    
        Friend Sub SetImpostazione(ByVal Filename As String, ByVal Sezione As String, ByVal Chiave As String, Optional ByVal Valore As String = "")
            IniWrite(Filename, Sezione, Chiave, Valore)
        End Sub
    
    
        Friend Function GetImpostazione(ByVal Filename As String, ByVal Sezione As String, ByVal Chiave As String) As String
            GetImpostazione = IniRead(Filename, Sezione, Chiave)
        End Function
    
    
    End Module
    I database... la mia passione + o -

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.