waiyan
驱动牛犊
驱动牛犊
  • 注册日期2003-10-21
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1842回复:7

2000下物理磁盘的读写问题

楼主#
更多 发布于:2003-10-21 10:51
我在用DELPHI写段程序在2000下,把自己写的引导程序写到0扇区,但我现在只要写前面几十个字节,不能把全部的512字节都替换掉,那样会破坏分区表的。现在的问题是,我怎么有办法只写前面几十个字节?,我定义了个缓冲区,但每当我写进去的时候,就会把整个扇区都覆盖了。
 谁能有办法解决?
//读出我要写进扇区的文件到缓冲区BUFFER
 iFileHandle := FileOpen(\'a:\\first.bin\', fmOpenRead);
      iFileLength := FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      Buffer := PChar(AllocMem(iFileLength + 1));
     FileRead(iFileHandle, Buffer^, iFileLength);
      FileClose(iFileHandle);
//在这里我发现buffer里面除了有我firet.bin文件外,还有其他,怎么回事?
//找到0扇区,写到扇区
FileSeek(hDeviceHandle,SectorStart*BytesPersector,0);//
if FileWrite(hDeviceHandle,buffer,SectorCount*bBytesPersector)<>SectorCount*bBytesPersector then
raise exception.create(\'write错误\');
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-10-21 10:56
读出来修改那些你要修改的再写回去3!傻傻的接分!
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
waiyan
驱动牛犊
驱动牛犊
  • 注册日期2003-10-21
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-21 11:05
怎么改?
 定义个P:PCHAR
 我把扇区数据读到了P[0],怎么帮我要改的换进去?
 指教!
deltali
驱动小牛
驱动小牛
  • 注册日期2002-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望23点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-21 12:33
你先把整个扇区读出来,修改完后再整个扇区写回去,应该就可以拉
我又来了,生命不息,驱动不止。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2003-10-21 12:35
不是已经很清楚了,读取一个扇区的内容到你的BUFFER,修改前面的MBR保留分区表,把修改好的BUFFER中一个扇区的内容写回到0,0,1即可.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
waiyan
驱动牛犊
驱动牛犊
  • 注册日期2003-10-21
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-21 12:42
不好意思,我就是在修改的地方不知道怎么改。
FA33CD……这16进制怎么去替换。
waiyan
驱动牛犊
驱动牛犊
  • 注册日期2003-10-21
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-22 10:10
我已经把要改的扇区替换掉了```
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-23 09:33
偶倒。
不限容量的免费邮箱 www.k65.net
游客

返回顶部