You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.6 KiB
89 lines
2.6 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using SmartAquaViewer.Classes;
|
|
|
|
namespace SmartAquaViewer.INI
|
|
{
|
|
class INIManager
|
|
{
|
|
private readonly string strINIPath;
|
|
|
|
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
|
|
private static extern long WritePrivateProfileString(
|
|
string section, string key, string val, string filePath);
|
|
|
|
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
|
|
private static extern int GetPrivateProfileString(
|
|
string section, string key, string def, StringBuilder retVal, int size, string filePath);
|
|
|
|
public INIManager(String INIPath)
|
|
{
|
|
strINIPath = INIPath;
|
|
if (!ExistINI())
|
|
{
|
|
CreateIni();
|
|
}
|
|
else
|
|
{
|
|
CheckAndInsertIni();
|
|
}
|
|
}
|
|
|
|
public void CreateIni()
|
|
{
|
|
WriteValue("CONFIG", Constants.Config.TITLE, "SmartAquaViwer");
|
|
WriteValue("CONFIG", Constants.Config.DATA_FILE_PATH, Constants.Directories.DATA_FOLDER);
|
|
}
|
|
|
|
public bool ExistINI()
|
|
{
|
|
return File.Exists(strINIPath);
|
|
}
|
|
|
|
public void CheckAndInsertIni()
|
|
{
|
|
CheckAndInsert("CONFIG", Constants.Config.TITLE, "SmartAquaViwer");
|
|
CheckAndInsert("CONFIG", Constants.Config.DATA_FILE_PATH, Constants.Directories.DATA_FOLDER);
|
|
|
|
}
|
|
|
|
public void CheckAndInsert(String strSection, String strKey, String strValue)
|
|
{
|
|
string key = ReadValue(strSection, strKey);
|
|
if (key == null || key.Trim() == "")
|
|
{
|
|
WriteValue(strSection, strKey, strValue);
|
|
}
|
|
}
|
|
|
|
public void WriteValue(String strSection, String strKey, String strValue)
|
|
{
|
|
WritePrivateProfileString(strSection, strKey, strValue, strINIPath);
|
|
}
|
|
|
|
public void DeleteSection(String strSection)
|
|
{
|
|
WritePrivateProfileString(strSection, null, null, strINIPath);
|
|
}
|
|
|
|
public string ReadValue(String strSection, String Key)
|
|
{
|
|
return ReadValue(strSection, Key, "");
|
|
}
|
|
|
|
public string ReadValue(String strSection, String Key, String def)
|
|
{
|
|
var strValue = new StringBuilder(255);
|
|
|
|
int i = GetPrivateProfileString(strSection, Key, def, strValue, 255, strINIPath);
|
|
|
|
return strValue.ToString();
|
|
}
|
|
}
|
|
}
|