100分求救!!!

oneleave 2004-04-21 04:33:45
现小弟需要修改一文件(非本格式)的某一位置的数据,用WinHex能找到位置,但显示的是乱码,在C#中不知道如何才能达到修改某一位置数据的目的.请各位高手指教一下,谢谢先
...全文
25 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
oneleave 2004-04-22
  • 打赏
  • 举报
回复
ok,问题解决,谢谢csharpguy(csharpguy)
happy01 2004-04-22
  • 打赏
  • 举报
回复
up
marvelstack 2004-04-22
  • 打赏
  • 举报
回复
使用FileStream.Seek方法定位。
csharpguy 2004-04-22
  • 打赏
  • 举报
回复
如果你用 Seek 或者 直接设定 Position 在一个FileStream 上,

然后用 WriteByte, 就可以把那个position 上那一byte 改了

例如
using( FileStream fs = new FileStream("myFile.bin", FileMode.Open, FileAccess.ReadWrite ) )
{
fs.Seek(0,SeekOrigin.Begin);

fs.WriteByte((byte)(' '));

fs.Close();
}

如果 myFile.bin 原来是有 "nice" 四个字母
运行后就成了" ice"
bitsbird 2004-04-21
  • 打赏
  • 举报
回复
up
athossmth 2004-04-21
  • 打赏
  • 举报
回复
关注
oneleave 2004-04-21
  • 打赏
  • 举报
回复
up up
greatsft 2004-04-21
  • 打赏
  • 举报
回复
用replace代替找到后的字符串,然后写入,当然如果该文件的权限是
只读的话,估计就不能实现了!

wish u good luck
Greatsft
hivak47 2004-04-21
  • 打赏
  • 举报
回复
事件中没有?
oneleave 2004-04-21
  • 打赏
  • 举报
回复
读是可以读到,但关键是,读到了之后怎么修改,然后再写回去呀
nameldw 2004-04-21
  • 打赏
  • 举报
回复
帮你顶先
csharpguy 2004-04-21
  • 打赏
  • 举报
回复
例如
using( FileStream fs = new FileStream( "myFile.bin", FileMode.Open )
{
fs.Seek( 1024, SeekOrigin.Begin );

int theByte = fs.ReadByte();
}

读一个文件里的第1025 byte

不确定这是不是你的意思。。
floodzhu 2004-04-21
  • 打赏
  • 举报
回复
是不是可以使用 FileStream.Position 呢,看看MSDN吧
oneleave 2004-04-21
  • 打赏
  • 举报
回复
up

110,561

社区成员

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

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

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