C#如何在txt文本某个数据的后来添加字符呢?

nothila 2009-01-10 02:47:35
例子:1.txt 里面有很多字符,软件设计中要求遇到"北京"两字,就在“北京”后面添加“奥运会”,怎么做呢?
最好给出详细代码~~~感激不尽!
我本来想用seek做的,但StreamReader没有返回当前的位置的方法,而streamReader ReadLine()一次后,指针直接跑到文本最后了,定位不了当前位置555555555555555

第一次发帖, 没分数可送55555555555
...全文
303 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nothila 2009-01-10
  • 打赏
  • 举报
回复
或者您还有什么好的办法不?
nothila 2009-01-10
  • 打赏
  • 举报
回复
能完成替换功能~
但我实际上是需要将 test.txt 里面,有"文件夹"三个字的后面加序号,
按删除就删序号

"文件夹"这些字是单独一行的

我想出了以上的办法,
但现在的问题是点添加按钮后,是能添加,但原文本最后多了一个空行
点删除按钮后,能删除,但文本最后多了倒数几个字符

头都晕了.....

不知兄弟有空能帮我找出问题所在不?
亿分感激阿!!!555555555 >.<
nothila 2009-01-10
  • 打赏
  • 举报
回复
FileStream fs;
StreamReader streamReader;
StreamWriter streamWriter;
private void FrmSameNO_Load(object sender, EventArgs e)
{
fs = new FileStream("test.txt", FileMode.Open, FileAccess.ReadWrite);
streamReader = new StreamReader(fs,System.Text.Encoding.GetEncoding("gb2312"));
streamWriter = new StreamWriter(fs, Encoding.GetEncoding("gb2312"));

string show = streamReader.ReadToEnd();
textBox1.Text = show;

}

private void btnFileAddNO_Click(object sender, EventArgs e)
{
fs.Seek(0, SeekOrigin.Begin);
int count = 0;

string str="";
while (streamReader.EndOfStream==false)
{

str = streamReader.ReadLine();
if (str.Trim() == "文件夹")
{
count++;

str = str.Trim() + count.ToString();
}

if(str!=null){
streamWriter.WriteLine(str);
}

str = "";

}

fs.Seek(0, SeekOrigin.Begin);
streamWriter.Close();



}

private void btnDelteNO_Click(object sender, EventArgs e)
{
fs.Seek(0, SeekOrigin.Begin);
string str;
while (streamReader.EndOfStream == false)
{

str = streamReader.ReadLine();
if (str.IndexOf("文件夹")!=-1)
{


str = "文件夹";
}

if (str != null)
{
streamWriter.WriteLine(str);
}

str = "";

}

fs.Seek(0, SeekOrigin.Begin);
streamWriter.Flush();
}
捷哥1999 2009-01-10
  • 打赏
  • 举报
回复
一样的,你可以先把文本文件读取到StringBuilder中,然后使用此类提供的替换功能,按照你的需要替换掉某些信息,然后再写入文件就可以了呀。
nothila 2009-01-10
  • 打赏
  • 举报
回复
我是想保存在txt里面的...
重要代码已经给出了,我再试下
>.< 谢谢~

捷哥1999 2009-01-10
  • 打赏
  • 举报
回复
建议一个C# Windows工程项目
在窗体上面放一个richTextBox控件和一个button控件,如下是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Collections;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
StringBuilder allText = new StringBuilder();

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
StreamReader objStringReader = new StreamReader("TextFile1.txt");
string sLine="";


while(sLine!=null)
{
sLine=objStringReader.ReadLine();
if(sLine!=null)
allText.Append(sLine);
}
objStringReader.Close();

this.richTextBox1.Text += allText.ToString();
}

private void button1_Click(object sender, EventArgs e)
{
allText.Replace("北京", "北京奥运会");
this.richTextBox1.Text = allText.ToString();
}
}
}

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧