怎样用文件流将多个图片文件去掉前6个字节的文件头然后写入到一个文件中?比如将1.jpg,2.jpg,3.jpg去掉前面的6个字节写入到一个test.dat文件中?

解决方案 »

  1.   

    直接用流就可以了。代码:TStream.CopyFrom(Source: TStream; Count: Int64): Int64;把Source.Position := 6,把Count := Source.Size,就可以了,具体参考代码:function TStream.CopyFrom(Source: TStream; Count: Int64): Int64;
    const
      MaxBufSize = $F000;
    var
      BufSize, N: Integer;
      Buffer: PChar;
    begin
      if Count = 0 then
      begin
        Source.Position := 0;
        Count := Source.Size;
      end;
      Result := Count;
      if Count > MaxBufSize then BufSize := MaxBufSize else BufSize := Count;
      GetMem(Buffer, BufSize);
      try
        while Count <> 0 do
        begin
          if Count > BufSize then N := BufSize else N := Count;
          Source.ReadBuffer(Buffer^, N);
          WriteBuffer(Buffer^, N);
          Dec(Count, N);
        end;
      finally
        FreeMem(Buffer, BufSize);
      end;
    end;