c#对txt文件的操作
文件里的内容格式是这样的:
[student]
name=sky;
sex=男;
[teacher]
name=sks;
sex=太监;
格式是这样的,用[]括起来的是大的类别,而name=sky;name是参数名,而sky是参数的值,然后用分号结束,再换行!
我想传两个参数到一个方法里,一个参数就是那个用[]括起来的大类,还有一个是参数名,都是string类型的!然后那个方法给我返回那个参数的值!
哪个高手帮我写一下这个方法啊?如果可以的话,再帮忙写一个写文件的方法,传的是三个参数,一个是类,第二个是参数,第三个是参数的值!
100分伺候,如果满意,再送100分!谢谢!
按照我说的写两个方法就可以了!
我对流还不是很熟练!谢谢 展开
System;
using
System.Drawing;
using
System.Collections;
using
System.ComponentModel;
using
System.Windows.Forms;
using
System.Data;
using
System.Runtime.InteropServices;
using
System.Text;
namespace
你的命令空间
{
class
RwIni
{
[DllImport(^kernel32^)]
private
static
extern
long
WritePrivateProfileString(string
section,
string
key,
string
val,
string
filePath);
[DllImport(^kernel32^)]
private
static
extern
int
GetPrivateProfileString(string
section,
string
key,
string
def,
StringBuilder
retVal,
int
size,
string
filePath);
///
<summary>
///
写入INI文件
///
</summary>
///
<param
name=^Section^>节点名称</param>
///
<param
name=^Key^>关键字</param>
///
<param
name=^Value^>值</param>
///
<param
name=^filepath^>INI文件路径</param>
static
public
void
IniWriteValue(string
Section,
string
Key,
string
Value,
string
filepath)
{
WritePrivateProfileString(Section,
Key,
Value,
filepath);
}
///
<summary>
///
读取INI文件
///
</summary>
///
<param
name=^Section^>节点名称</param>
///
<param
name=^Key^>关键字</param>
///
<param
name=^filepath^>INI文件路径</param>
///
<returns>值</returns>
static
public
string
IniReadValue(string
Section,
string
Key,
string
filepath)
{
StringBuilder
temp
=
new
StringBuilder(255);
int
i
=
GetPrivateProfileString(Section,
Key,
^^,
temp,
255,
filepath);
return
temp.ToString();
}
}
}
保存为RwIni.cs
记得改命名空间
写INI
RwIni.IniWriteValue("类","参数","参数值","d:\\setting.txt")
读INI
string
str=RwIni.IniReadValue("类","参数","d:\\setting.txt");
str就是取到的参数值
1.fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
2.例程:
#include<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp) return -1;//要返回错误代码
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return 0;
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using System.Text;
namespace 你的命令空间
{
class RwIni
{
[DllImport(^kernel32^)]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport(^kernel32^)]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// 写入INI文件
/// </summary>
/// <param name=^Section^>节点名称</param>
/// <param name=^Key^>关键字</param>
/// <param name=^Value^>值</param>
/// <param name=^filepath^>INI文件路径</param>
static public void IniWriteValue(string Section, string Key, string Value, string filepath)
{
WritePrivateProfileString(Section, Key, Value, filepath);
}
/// <summary>
/// 读取INI文件
/// </summary>
/// <param name=^Section^>节点名称</param>
/// <param name=^Key^>关键字</param>
/// <param name=^filepath^>INI文件路径</param>
/// <returns>值</returns>
static public string IniReadValue(string Section, string Key, string filepath)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, ^^, temp,
255, filepath);
return temp.ToString();
}
}
}
保存为RwIni.cs 记得改命名空间
写INI RwIni.IniWriteValue("类","参数","参数值","d:\\setting.txt")
读INI
string str=RwIni.IniReadValue("类","参数","d:\\setting.txt");
str就是取到的参数值
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string FileName = "F:\\M.txt";
string strInput = "";
string GetStream = "";
if (File.Exists(FileName))
{
StreamReader sr = new StreamReader(FileName, UnicodeEncoding.GetEncoding("gb2312"));
strInput = sr.ReadLine();
while (strInput != null)
{
GetStream += strInput + "<br>";
strInput = sr.ReadLine();
}
sr.Close();
Label1.Text = GetStream;
}
else
{
Label1.Text = "myFile.txt does not exist!";
}
}
}
}
以第行来读取.你可以把读取的数据放大数据组里.然后再作判断.就可以得到你想要的结果了
2008-06-12
很简单的