package inip import ( "fmt" "os" "gopkg.in/ini.v1" ) var ininame string var cfg *ini.File // GetIni memorizza localmente il nome del file da aprire, ma senza lavorarci su func GetIni(ini1 string) { ininame = ini1 fmt.Println("File indicato",ininame) /* inizialmente avevo usato 'ininame' sia come variabile locale che come variabile globale. grande errore: in pratica mettevo il nome in 'ininame' locale e quella globale restava vuota. da qui l'uso di 'ini1' e 'ininame' */ } // sulla base del contenuto di "ininame" carica il file .ini func LoadIni() *ini.File { var err error cfg, err = ini.Load(ininame) if err != nil { fmt.Printf("Non posso leggere il file %s\n",ininame) os.Exit(1) } return cfg } func GetMySection() []string { return cfg.SectionStrings() } func GetMyKey(sezione string,stringa string) *ini.Key { risultato,err := cfg.Section(sezione).GetKey(stringa) if err != nil { fmt.Println("errore nella richiesta chiave",sezione,stringa) os.Exit(3) } return risultato }