怎样用C#读取TXT文件内容并修改
比如说我现在有一个TXT文件,内容如下:XXX学校XXX班级期末考试成绩————————————————————序号姓名籍贯名次语文英语数学1小明北京19088932小红...
比如说我现在有一个TXT文件,内容如下:
XXX学校
XXX班级
期末考试成绩
————————————————————
序号 姓名 籍贯 名次 语文 英语 数学
1 小明 北京 1 90 88 93
2 小红 南京 2 89 90 90
3 小龙 山东 3 90 87 88
4 小虎 山西 4 87 90 86
……
现在想去掉籍贯和名次,变成如下形式:
XXX学校
XXX班级
期末考试成绩
————————————————————
序号 姓名 语文 英语 数学
1 小明 90 88 93
2 小红 89 90 90
3 小龙 90 87 88
4 小虎 87 90 86
……
修改之后再保存为TXT格式文件
应该怎样做?新手,请高手不吝赐教~
请详细点回答,最好带注释,本人新手。如果生成的格式如下又该怎么处理?
XXX学校
XXX班级
期末考试成绩
————————————————————
序号 姓名 语文 英语 数学
1, 小明,90, 88, 93
2, 小红,89, 90, 90
3, 小龙,90, 87, 88
4, 小虎,87, 90, 86
…… 展开
XXX学校
XXX班级
期末考试成绩
————————————————————
序号 姓名 籍贯 名次 语文 英语 数学
1 小明 北京 1 90 88 93
2 小红 南京 2 89 90 90
3 小龙 山东 3 90 87 88
4 小虎 山西 4 87 90 86
……
现在想去掉籍贯和名次,变成如下形式:
XXX学校
XXX班级
期末考试成绩
————————————————————
序号 姓名 语文 英语 数学
1 小明 90 88 93
2 小红 89 90 90
3 小龙 90 87 88
4 小虎 87 90 86
……
修改之后再保存为TXT格式文件
应该怎样做?新手,请高手不吝赐教~
请详细点回答,最好带注释,本人新手。如果生成的格式如下又该怎么处理?
XXX学校
XXX班级
期末考试成绩
————————————————————
序号 姓名 语文 英语 数学
1, 小明,90, 88, 93
2, 小红,89, 90, 90
3, 小龙,90, 87, 88
4, 小虎,87, 90, 86
…… 展开
展开全部
先打开该文件
读取txt文件的数据
对数据进行操作
将修改后的数据写入文件中
例如:
string[] str= System.IO.File.ReadAllLines("");
str[3] = "xxxxxx";
System.IO.File.WriteAllLines("", str);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class Program
{
public static void Main(string[] args)
{
string filePath = "c:\\test.txt";
List<string[]> list = ReadInfoFromFile(filePath); //这个函数把文件的每一行读入list
foreach (string[] strArray in list)
{
if (strArray.Length < 7)
{
continue;
}
for (int i = 0; i < strArray.Length; i++)
{
if (i == 2 || i == 3)
{
strArray[i] = ""; //把想要去掉的地方换成空串
}
}
}
WriteInfoTofile(filePath, list);
}
/// <summary>
/// 这个函数把文件的每一行读入list
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
private static List<string[]> ReadInfoFromFile(string filePath)
{
if (File.Exists(filePath))
{
List<string[]> list = new List<string[]>();
// 打开文件时 一定要注意编码 也许你的那个文件并不是GBK编码的
using (StreamReader sr = new StreamReader(filePath, Encoding.GetEncoding("GBK")))
{
while (!sr.EndOfStream) //读到结尾退出
{
string temp = sr.ReadLine();
//将每一行拆分,分隔符就是char 数组中的字符
string[] strArray = temp.Split(new char[] { '\t', ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
//将拆分好的string[] 存入list
list.Add(strArray);
}
}
return list;
}
return null;
}
/// <summary>
/// 这个函数把list中的每一行写入文件
/// </summary>
/// <param name="filePath"></param>
/// <param name="list"></param>
private static void WriteInfoTofile(string filePath, List<string[]> list)
{
// 打开文件时 一定要注意编码 也许你的那个文件并不是GBK编码的
using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("GBK")))
{
//一个string[] 是一行 ,一行中以tab键分隔
foreach (string[] strArray in list)
{
string line = string.Empty;
foreach (string temp in strArray)
{
if (!string.IsNullOrEmpty(temp))
{
line += temp;
line += "\t";
}
}
sw.WriteLine(line);
}
}
}
}
{
public static void Main(string[] args)
{
string filePath = "c:\\test.txt";
List<string[]> list = ReadInfoFromFile(filePath); //这个函数把文件的每一行读入list
foreach (string[] strArray in list)
{
if (strArray.Length < 7)
{
continue;
}
for (int i = 0; i < strArray.Length; i++)
{
if (i == 2 || i == 3)
{
strArray[i] = ""; //把想要去掉的地方换成空串
}
}
}
WriteInfoTofile(filePath, list);
}
/// <summary>
/// 这个函数把文件的每一行读入list
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
private static List<string[]> ReadInfoFromFile(string filePath)
{
if (File.Exists(filePath))
{
List<string[]> list = new List<string[]>();
// 打开文件时 一定要注意编码 也许你的那个文件并不是GBK编码的
using (StreamReader sr = new StreamReader(filePath, Encoding.GetEncoding("GBK")))
{
while (!sr.EndOfStream) //读到结尾退出
{
string temp = sr.ReadLine();
//将每一行拆分,分隔符就是char 数组中的字符
string[] strArray = temp.Split(new char[] { '\t', ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
//将拆分好的string[] 存入list
list.Add(strArray);
}
}
return list;
}
return null;
}
/// <summary>
/// 这个函数把list中的每一行写入文件
/// </summary>
/// <param name="filePath"></param>
/// <param name="list"></param>
private static void WriteInfoTofile(string filePath, List<string[]> list)
{
// 打开文件时 一定要注意编码 也许你的那个文件并不是GBK编码的
using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.GetEncoding("GBK")))
{
//一个string[] 是一行 ,一行中以tab键分隔
foreach (string[] strArray in list)
{
string line = string.Empty;
foreach (string temp in strArray)
{
if (!string.IsNullOrEmpty(temp))
{
line += temp;
line += "\t";
}
}
sw.WriteLine(line);
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
StreamReader objReader = new StreamReader(fi.FullName);
while (!objReader.EndOfStream){
str=objReader.ReadLine();
}
对str做处理,再写回去
StreamWriter wr = new StreamWriter(new FileStream(file, FileMode.Append));
wr.WriteLine(str);
wr.Flush();
wr.Close();
while (!objReader.EndOfStream){
str=objReader.ReadLine();
}
对str做处理,再写回去
StreamWriter wr = new StreamWriter(new FileStream(file, FileMode.Append));
wr.WriteLine(str);
wr.Flush();
wr.Close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询