Maison > 类库下载 > C#类库 > C#创建ini文件、读取值、修改值

C#创建ini文件、读取值、修改值

大家讲道理
Libérer: 2016-11-10 09:21:55
original
3833 Les gens l'ont consulté

调用方法:

int iBaudRate = InIHelper.ReadConfig("COM_SETUP", "波特率")

InIHelper类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

public class InIHelper

    {

        private static string FileName = Application.StartupPath + "\\AppConfig.ini";

        /// <summary>

        /// 读取配置文件

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="section"></param>

        /// <param name="key"></param>

        /// <returns></returns>

        public static T ReadConfig<T>(string section, string key)

        {

            if (File.Exists(FileName))

            {

                IniFile f = new IniFile(FileName);

                string value = f.ReadContentValue(section, key);

  

                if (String.IsNullOrWhiteSpace(value))

                    return default(T);

  

                if (typeof(T).IsEnum)

                    return (T)Enum.Parse(typeof(T), value, true);

  

                return (T)Convert.ChangeType(value, typeof(T));

            }

            else

            {

                return default(T);

            }

        }

  

        /// <summary>

        /// 写配置文件

        /// </summary>

        /// <param name="section"></param>

        /// <param name="key"></param>

        /// <param name="value"></param>

        public static void WriteConfig(string section, string key, string value)

        {

            //如果文件不存在,则创建

            if (!File.Exists(FileName))

            {

                using (FileStream myFs = new FileStream(FileName, FileMode.Create)) { }

            }

  

            IniFile f = new IniFile(FileName);

            f.WriteContentValue(section, key, value);

        }

    }

Copier après la connexion

核心代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

public class IniFile

    {

        public string Path;

  

        public IniFile(string path)

        {

            this.Path = path;

        }

  

        /// <summary>

        /// 写入INI文件

        /// </summary>

        /// <param name="section">节点名称[如[TypeName]]</param>

        /// <param name="key">键</param>

        /// <param name="val">值</param>

        /// <param name="filepath">文件路径</param>

        /// <returns></returns>

        [DllImport("kernel32")]

        private static extern long WritePrivateProfileString(string section, string key, string val, string filepath);

  

        /// <summary>

        /// 读取INI文件

        /// </summary>

        /// <param name="section">节点名称</param>

        /// <param name="key">键</param>

        /// <param name="def">值</param>

        /// <param name="retval">stringbulider对象</param>

        /// <param name="size">字节大小</param>

        /// <param name="filePath">文件路径</param>

        /// <returns></returns>

        [DllImport("kernel32")]

        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);

  

        /// <summary>

        /// 写入

        /// </summary>

        /// <param name="section"></param>

        /// <param name="key"></param>

        /// <param name="iValue"></param>

        public void WriteContentValue(string section, string key, string iValue)

        {

            WritePrivateProfileString(section, key, iValue, this.Path);

        }

  

        /// <summary>

        /// 读取INI文件中的内容方法

        /// </summary>

        /// <param name="Section">键</param>

        /// <param name="key">值</param>

        /// <returns></returns>

        public string ReadContentValue(string Section, string key)

        {

            StringBuilder temp = new StringBuilder(1024);

            GetPrivateProfileString(Section, key, "", temp, 1024, this.Path);

            return temp.ToString();

        }

    }

Copier après la connexion


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal