写fat表中关于文件大小的值,想写多大就多大

解决方案 »

  1.   

    那个时候改成这么大是为防止别人用软盘拷贝此程序。记得在哪儿看到过,可惜忘了。方法是很简单的,好像不是写FAT的,没这么烦。
    好像是在文件中加了点垃圾,但用arj可以压缩“还原”的。好像也没要用什么工具的。
    哪为高手指点。
      

  2.   

    我刚才试了下,发现可以,你不妨自己试下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if form1.OpenDialog1.Execute then
           form1.Edit1.Text:=form1.OpenDialog1.FileName;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var Buf:Tfilestream;
        tmp:array [0..3000] of char;
        i,fp:integer;
    begin
      form1.Caption:='Start..';
    try
      fp:=fileopen(trim(edit1.text),fmOpenWrite or fmShareDenyNone);
      fileseek(fp,0,2);
      for i:=0 to 10000 do begin
        fillchar(tmp, SizeOf(tmp), Ord('A'));
        filewrite(fp,tmp,sizeof(tmp));
        application.ProcessMessages;
      end;
      form1.Caption:=form1.Caption+' '+inttostr(sizeof(tmp));
    finally
      fileclose(fp); form1.Caption:='Finished';
    end;
    end;
      

  3.   

    DOS下的文件项包括很多跟文件有关的信息,比如文件名(8.3格式)、创建时间、大小、属性等。如果你把其中的“大小”改变了,那么尽管实际文件可能会非常小,但是在拷贝、移动、列目录等时候都回显示该文件巨大无比。
    当时作这个事情的小工具多的是,可惜现在都失传了:(
    如果阁下有兴趣,不妨拿出debug或者Norton DiskEdit或者Pctools,自己改一下吧。
      

  4.   

    方法是可以的,但那时好像没这么烦,在DOS下敲了一个简单的命令
      

  5.   

    我记得用debug就成. 
    debug filename
    -w XXXXXXXXX
    XXXXX不记得是什么了,要么是地址,要么就直接是长度.
      

  6.   

    好像这个也行:dir c:\windows >> a.txt