c#对txt文件的操作

我想要操作一个txt文件,文件叫setting.txt文件里的内容格式是这样的:[student]name=sky;sex=男;[teacher]name=sks;sex... 我想要操作一个txt文件,文件叫setting.txt
文件里的内容格式是这样的:
[student]
name=sky;
sex=男;
[teacher]
name=sks;
sex=太监;

格式是这样的,用[]括起来的是大的类别,而name=sky;name是参数名,而sky是参数的值,然后用分号结束,再换行!

我想传两个参数到一个方法里,一个参数就是那个用[]括起来的大类,还有一个是参数名,都是string类型的!然后那个方法给我返回那个参数的值!

哪个高手帮我写一下这个方法啊?如果可以的话,再帮忙写一个写文件的方法,传的是三个参数,一个是类,第二个是参数,第三个是参数的值!

100分伺候,如果满意,再送100分!谢谢!
按照我说的写两个方法就可以了!
我对流还不是很熟练!谢谢
展开
 我来答
百度网友74283efdfe8
2020-03-23 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:822万
展开全部
using
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就是取到的参数值
tattackor
2015-08-06 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:892万
展开全部

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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alwaysfirst
2008-06-12 · TA获得超过491个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:229万
展开全部
using 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就是取到的参数值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Antsba
2008-06-12 · TA获得超过177个赞
知道答主
回答量:76
采纳率:0%
帮助的人:41.8万
展开全部
using System;
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
展开全部
你好像不是txt是ini文件吧
很简单的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式