你利用TFilestream很容易做到!

解决方案 »

  1.   

    var
      fs : TFileStream;
      buf : Pchar;
      vsize : LongInt;
    begin
      strpcopy(buf, 'Provider=');
      vSize := sizeof(buf);
      fs := TFileCreate('c:\fs.dat', ftCreate);
      fs.write(buf, vSize);
      fs.Free;
    end;
      

  2.   

    不难呀!
    var
      F:File;
    begin
      AssignFile(F,FileName);
      if FileExists(FileName) then
        Reset(F)
      else
        Rewrite(F);
      //.......do your things
      CloseFile(F);
    end;
      

  3.   

    同意 blazingfire(烈焰) UP 接分!
      

  4.   

    回复人: Michaelyfj(向五角星看齐) 
    你的这段代码无法运行!
      

  5.   

    回复人: blazingfire(烈焰) 
    l_xiaofeng(流水不腐) 
    可是我要求的是一个二进制的文件!
    我觉得blazingfire(烈焰) 只是创建一个普通的文本文件!
      

  6.   

    将   Michaelyfj(向五角星看齐)  的代码一句改为:
    fs:=TFileStream.Create('c:\fs.dat',FmCreate);
      

  7.   

    将   Michaelyfj(向五角星看齐)  的代码改为:(dupenf提示)
    var
      fs : TFileStream;
    //  buf : Pchar;
      buf : array[0..2052] of Char;
      vsize : LongInt;
    begin
      strpcopy(buf, 'Provider=');
      vSize := sizeof(buf);
      fs:=TFileStream.Create('c:\fs.dat',FmCreate);
      fs.write(buf, vSize);
      fs.Free;
    end;
    是创建了一个二进制文件,可是后面的一段二进制码为什么全是乱码,
    这些乱码是那里来的?如果我想让后面的全是00 00 00 00......
    怎么办?
      

  8.   

    var
      fs : TFileStream;
    //  buf : Pchar;
      buf : array[0..2052] of Char;
      vsize : LongInt;
      b : byte;
    begin
      strpcopy(buf, 'Provider=');
      vSize := sizeof(buf);
      fs:=TFileStream.Create('c:\fs.dat',FmCreate);
      fs.write(buf, vSize);
      ////////
      b:=0;
      fs.write(b, 1);
      b:=1;            //设为你想要的值如13代表回车9代表Tab符号
      fs.write(b, 1);
      ///////
      fs.Free;
    end;
      

  9.   

    var
      fs : TFileStream;
    //  buf : Pchar;
      buf : array[0..2052] of Char;
      vsize : LongInt;
      b : byte;
      w : word;
      c : cardinal;
    begin
      strpcopy(buf, 'Provider=');
      vSize := sizeof(buf);
      fs:=TFileStream.Create('c:\fs.dat',FmCreate);
      fs.write(buf, vSize);
      ////////
      b:=0;      
      fs.write(b, 1);     //byte类型一个字节
      w:=1111;            //设为你想要的值如13代表回车9代表Tab符号
      fs.write(w, 2);     //word类型两个字节
      c:=0;
      fs.write(c, 4);    //cardinal类型一个字节  ///////
      fs.Free;
    end;
      

  10.   

    谢谢各位的帮忙,经过大家的提示,这样就行了!
    var
            fs : TFileStream;
            strConnect: String;
            intLength: Integer;
            Buf : array[0..2052] of Char;
            vSize : LongInt;
            i: Integer;
    begin
            StrConnect := 'Provider=SQLOLEDB.1;Password=;'
                    + 'Persist Security Info=True;User ID=SA;'
                    + 'Initial Catalog=Juling_Jxc;Data Source=(LOCAL)';
            intLength := Length(strConnect);
            for i := 0 to 2052 do
                    buf[i] := #0;
            Buf[0] := #1; Buf[1] := #8;
            Buf[2] := #0; Buf[3] := #0;
            for i := 4 to intLength + 3 do
                    buf[i] := Char(Ord(strConnect[i-3]) + 128);
    //  strpcopy(buf, 'Provider=');
            vSize := sizeof(buf);
            fs:=TFileStream.Create('D:\DataBase.dat',FmCreate);
            fs.write(buf, vSize);  fs.Free;
    //  StrDispose(buf);
    end;