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 读取配置文件的值 赋给静态变量
需求:写了一个工具类,但是工具类中的一些变量需要放到配置文件中,而这个工具类中的变量与方法都是静态的,这个时候我需要一个办法将配置文件中的相关配置读取过来赋值给这些静态变量.找了一些文章,试了一些方法 ...
随机推荐
- 【selenium+Python unittest】之发送带中文附件的邮箱
完整原码如下: import smtplib from email.mime.text import MIMEText #from email.header import Header from em ...
- ndk javah配置
Location: C:\Program Files\Java\jdk1.6.0_25\bin\javah.exe Working Directory: ${project_loc} Argument ...
- 漫反射和Lambert模型
粗糙的物体表面向各个方向等强度地反射光,这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection).产生光的漫反射现象的物体表面称为理想漫反射体,也称为朗伯(Lambert) ...
- Android UI开发第四十三篇——使用Property Animation实现墨迹天气3.0引导界面及动画实现
前面写过<墨迹天气3.0引导界面及动画实现>,里面完美实现了动画效果,那一篇文章使用的View Animation,这一篇文章使用的Property Animation实现.Propert ...
- NSSrting的几种经常使用的使用方法
1.创建NSString字符串 NSString 与 char* 最大的差别就是 NSString是一个objective对象,而char* 是一个字节数组. @+" 字符串 " ...
- PHP、AJAX综合练习(增、删、改、查、分页、模糊查询)
先来几张效果图 主页面分页显示: 关键字查询,关键字描红 添加数组,弹出窗口,点击保存,再不刷新页面的同时添加到网页数据 修改界面:弹出窗口,文本框中保留点击的车辆的原始信息 主页面代码 <me ...
- EasyNVR RTSP转RTMP-HLS流媒体服务器前端构建之:使用BootstrapPagination以分页形式展示数据信息
上一篇介绍通过接口来获取数据,本篇将介绍如何以分页形式展示出接口获取到的数据 获取到的数据往往会很多,为了追去页面的美观和方便用户的检索,需要进行分页的展示: EasyNVR可接如多通道,当我们的通道 ...
- jQuery 插件开发(1)
JavaScript 是一门混乱的语言,好的特性和坏的特性混杂在一起.而不同浏览器对标准的解析不一致,使得这门语言更加混乱,在这种情况下遵循最佳实践有诸多好处,至少不会掉入坑里.所以就有了<Ja ...
- django url匹配过程
ROOT_URLCONF root URLconf module urlpatterns “include” other URLconf modules chops off whatever part ...
- 性能测试--Jmeter的Non GUI模式、集群
Jmeter的Non GUI模式.集群 一.Non GUI模式 1.一般情况下在NonGUI模式下运行jmeter,有两个好处: 节省系统资源,能够产生更大的负载 可以通过命令行参数对测试场景进行更精 ...