CSharp读取配置文件的类(简单实现)
Reinventing the wheel 系列
CSharp 读取配置文件的类 简单实现(注意没有写)
本人对CS 不是很熟,库也不熟,所以到网上找个实现,并自己添加了点异常。如果只是读取信息,足够了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;//StringReader
namespace CSharpTest
{
//Properties属性文件操作类
/// <summary>
/// 属性文件读取操作类
/// </summary>
public class PropertyFileOperator
{
private StreamReader sr = null;
private Boolean bIsInit = false;
/// 构造函数
/// <param name="strFilePath">文件路径</param>
public PropertyFileOperator(string strFilePath)
{
try
{
sr = new StreamReader(strFilePath);
}
catch (Exception e)//can not find , exception
{
bIsInit = false;
MessageBox.Show(e.Message,"ERROR:failed to read Property File 读取配置文件失败");
return;
}
bIsInit = true;
}
public Boolean IsInit()
{
return bIsInit;
}
/// 关闭文件流
public void Close()
{
sr.Close();
sr = null;
}
/// 根据键获得值字符串
/// <param name="strKey">键</param>
/// <returns>值</returns>
public string GetPropertiesText(string strKey)
{
string strResult = string.Empty;
string str = string.Empty;
sr.BaseStream.Seek(0, SeekOrigin.End);
sr.BaseStream.Seek(0, SeekOrigin.Begin);
while ((str = sr.ReadLine()) != null)
{
//int index = str.IndexOf('#');
//bool ret = str.Substring(0, index).Equals("#");
//int len = str.Length; //len==0
if (str.IndexOf('#') == 0 || str.CompareTo("") == 0)//comment
continue;
if (str.IndexOf('=') >= 0)
{
if (str.Substring(0, str.IndexOf('=')).Equals(strKey))
{
strResult = str.Substring(str.IndexOf('=') + 1);
if (strResult.IndexOf('#') >= 0)
{
strResult = strResult.Substring(0, strResult.IndexOf('#'));
}
break;
}
}
else if (str.IndexOf(':') >= 0)
{
if (str.Substring(0, str.IndexOf(':')).Equals(strKey))
{
strResult = str.Substring(str.IndexOf(':') + 1);
if (strResult.IndexOf('#') >= 0)
{
strResult = strResult.Substring(0, strResult.IndexOf('#'));
}
break;
}
}
}
return strResult;
}
/// 根据键获得值数组
/// <param name="strKey">键</param>
/// <returns>值数组</returns>
public string[] GetPropertiesArray(string strKey)
{
string strResult = string.Empty;
string str = string.Empty;
sr.BaseStream.Seek(0, SeekOrigin.End);
sr.BaseStream.Seek(0, SeekOrigin.Begin);
while ((str = sr.ReadLine()) != null)
{
if (str.Substring(0, str.IndexOf('=')).Equals(strKey))
{
strResult = str.Substring(str.IndexOf('=') + 1);
break;
}
}
return strResult.Split(',');
}
}
}
CSharp读取配置文件的类(简单实现)的更多相关文章
- Asp.NetCore 读取配置文件帮助类
/// <summary> /// 读取配置文件信息 /// </summary> public class ConfigExtensions { public static ...
- spring读取配置文件PropertyPlaceholderConfigurer类的使用
这里主要介绍PropertyPlaceholderConfigurer这个类的使用,spring中的该类主要用来读取配置文件并将配置文件中的变量设置到上下文环境中,并进行赋值. 一.此处使用list标 ...
- PropertiesUtil 读取配置文件工具类
package org.konghao.basic.util; import java.io.FileInputStream; import java.io.FileNotFoundException ...
- ConfigUtil读取配置文件工具类
ConfigUtil package com.sso.util; import java.io.FileNotFoundException; import java.io.IOException; i ...
- java读取配置文件方法以及工具类
第一种方式 : java工具类读取配置文件工具类 只是案例代码 抓取异常以后的代码自己处理 import java.io.FileNotFoundException; import java.io. ...
- python读取配置文件&&简单封装
之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱.url等信息) 1.co ...
- Asp.net Core 和类库读取配置文件信息
Asp.net Core 和类库读取配置文件信息 看干货请移步至.net core 读取配置文件公共类 首先开一个脑洞,Asp.net core 被使用这么长时间了,但是关于配置文件(json)的读取 ...
- 使用Properties去读取配置文件,并获得具体内容值
有时候,写了一个配置文件,需要知道读出来的内容对不对,我们需要测试一下,看看读出来的跟我们要的是不是一样.这里写了一个工具类,用来读取配置文件里面的内容. 一.使用Properties工具类来读取. ...
- SpringBoot 读取配置文件的值 赋给静态变量
需求:写了一个工具类,但是工具类中的一些变量需要放到配置文件中,而这个工具类中的变量与方法都是静态的,这个时候我需要一个办法将配置文件中的相关配置读取过来赋值给这些静态变量.找了一些文章,试了一些方法 ...
随机推荐
- string去空格
众所周知,string字符串去除空格的方法有trim()和replace(),区别在于trim()去首尾的空格,但是不能去中间的,而replace可以去除所有的空格. string data1=&qu ...
- 【NOI2015】【程序自己主动分析】【并查集+离散化】
Description 在实现程序自己主动分析的过程中,经常须要判定一些约束条件能否被同一时候满足. 考虑一个约束满足问题的简化版本号:如果x1,x2,x3,-代表程序中出现的变量.给定n个形如xi= ...
- js为Object对象动态添加属性和值 eval c.k c[k]
const appendInfo = () => { const API_SECRET_KEY = 'https://github.com/dyq086/wepy-mall/tree/maste ...
- 【网络与系统安全】利用burpsuite进行重放攻击
重放攻击的定义 所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程. 原理 重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方.如果攻击者知 ...
- 我的Java开发学习之旅------>Workspace in use or cannot be created, choose a different one.--错误解决办法
今天使用Eclipse时,突然卡死了,然后我强制关闭了Eclipse,再重新打开的时候就报错了,错误如下: Workspace in use or cannot be created, choose ...
- 流畅python学习笔记:第十六章:协程
通常在python进行编程一般都是使用多线程或者多进程来实现.这里介绍另外一种并发的方式,就是协程,但和多线程以及多进程不一样的是,协程是运行在单线程当中的并发.来看下具体的例子: def simpl ...
- tensorflow:typeerror:‘noneType’ object is not callable
程序运行报错 typeerror: ‘noneType’ object is not callable 解决方法:删除缓存文件,再次运行没有错误 删除__pycache__文件夹
- HTML5实现中国象棋游戏
在线演示 本地下载
- mvc Bundling 学习记录(一)
参考博客:http://www.cnblogs.com/xwgli/p/3296809.html 这里要详细记录的是对于现有MVC项目进行Bundling功能 1 如果没有System.Web.Op ...
- HDU 1005 Number Sequence:矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 题意: 数列{f(n)}: f(1) = 1, f(2) = 1, f(n) = ( A*f(n ...