ini.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package inip
  2. import (
  3. "fmt"
  4. "os"
  5. "gopkg.in/ini.v1"
  6. )
  7. var ininame string
  8. var cfg *ini.File
  9. // GetIni memorizza localmente il nome del file da aprire, ma senza lavorarci su
  10. func GetIni(ini1 string) {
  11. ininame = ini1
  12. fmt.Println("File indicato",ininame)
  13. /*
  14. inizialmente avevo usato 'ininame' sia come variabile locale che come variabile globale.
  15. grande errore: in pratica mettevo il nome in 'ininame' locale e quella globale restava vuota.
  16. da qui l'uso di 'ini1' e 'ininame'
  17. */
  18. }
  19. // sulla base del contenuto di "ininame" carica il file .ini
  20. func LoadIni() *ini.File {
  21. var err error
  22. cfg, err = ini.Load(ininame)
  23. if err != nil {
  24. fmt.Printf("Non posso leggere il file %s\n",ininame)
  25. os.Exit(1)
  26. }
  27. return cfg
  28. }
  29. func GetMySection() []string {
  30. return cfg.SectionStrings()
  31. }
  32. func GetMyKey(sezione string,stringa string) *ini.Key {
  33. risultato,err := cfg.Section(sezione).GetKey(stringa)
  34. if err != nil {
  35. fmt.Println("errore nella richiesta chiave",sezione,stringa)
  36. os.Exit(3)
  37. }
  38. return risultato
  39. }