zoukankan      html  css  js  c++  java
  • C#获取ini文件中全部Section,获取Section下全部Key

    using System;
    using System.Text;
    using System.IO;
    using System.Runtime.InteropServices;
    using System.Collections.Generic;
    public class OperateIniFile
        {
            private static String filePath = "";
    #region API函数声明
    
            [DllImport("kernel32")]
            private static extern long WritePrivateProfileString(string section, string key,
                string val, string filePath);
    
         //需要调用GetPrivateProfileString的重载 [DllImport(
    "kernel32", EntryPoint = "GetPrivateProfileString")] private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); [DllImport("kernel32", EntryPoint = "GetPrivateProfileString")] private static extern uint GetPrivateProfileStringA(string section, string key, string def, Byte[] retVal, int size, string filePath); #endregion public static List<string> ReadSections() { return ReadSections(filePath); } public static List<string> ReadSections(string iniFilename) { List<string> result = new List<string>(); Byte[] buf = new Byte[65536]; uint len = GetPrivateProfileStringA(null, null, null, buf, buf.Length, iniFilename); int j = 0; for (int i = 0; i < len; i++) if (buf[i] == 0) { result.Add(Encoding.Default.GetString(buf, j, i - j)); j = i + 1; } return result; } public static List<string> ReadKeys(String SectionName) { return ReadKeys(SectionName, filePath); } public static List<string> ReadKeys(string SectionName, string iniFilename) { List<string> result = new List<string>(); Byte[] buf = new Byte[65536]; uint len = GetPrivateProfileStringA(SectionName, null, null, buf, buf.Length, iniFilename); int j = 0; for (int i = 0; i < len; i++) if (buf[i] == 0) { result.Add(Encoding.Default.GetString(buf, j, i - j)); j = i + 1; } return result; } public static void SetFilePath(String filepath) { filePath = filepath; } #region 读Ini文件 public static string ReadIniData(string Section, string Key, string NoText) { return ReadIniData(Section, Key, NoText, filePath); }
    public static string ReadIniData(string Section, string Key, string NoText, string iniFilePath) { if (File.Exists(iniFilePath)) { StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section, Key, NoText, temp, 1024, iniFilePath); return temp.ToString(); } elsereturn String.Empty; } #endregion #region 写Ini文件 public static bool WriteIniData(string Section, string Key, string Value) { return WriteIniData(Section, Key, Value, filePath); } public static bool WriteIniData(string Section, string Key, string Value, string iniFilePath) { if (File.Exists(iniFilePath)) { long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath); if (OpStation == 0) return false; elsereturn true; } elsereturn false; } #endregion }
  • 相关阅读:
    MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
    MySQL 行锁 表锁机制
    数据库中悲观锁和乐观锁
    NYOJ 116 士兵杀敌(二)【线段树 单点更新】
    java模拟而一个电话本操作
    Protostuff具体解释
    Java之enum
    muduo::Connector、TcpClient分析
    Android性能优化之中的一个 布局优化
    linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换
  • 原文地址:https://www.cnblogs.com/gavinliu1982/p/8416979.html
Copyright © 2011-2022 走看看