procedure TForm1.Button1Click(Sender: TObject);
const
buf:array[0..5] of byte=($06,$05,$04,$f0,$00,$e0);
var
FileName: string;
flstrmTemp: TFileStream;
strTemp: string;
begin
FileName:= 'c:\windows\desktop\3471.gif';
flstrmTemp := TFileStream.Create(FileName, fmOpenReadWrite);/////*****
SetLength(strTemp, flstrmTemp.Size);
flstrmTemp.Read(strTemp[1], flstrmTemp.Size);
flstrmtemp.position:=0;
flstrmtemp.write(buf,6);
flstrmtemp.write(strTemp[1],Length(strTemp));/////*****
flstrmtemp.position:=0;/////*****
SetLength(strTemp, flstrmTemp.Size);
flstrmTemp.Read(strTemp[1], flstrmTemp.Size);
flstrmTemp.Free;
end;
const
buf:array[0..5] of byte=($06,$05,$04,$f0,$00,$e0);
var
FileName: string;
flstrmTemp: TFileStream;
strTemp: string;
begin
FileName:= 'c:\windows\desktop\3471.gif';
flstrmTemp := TFileStream.Create(FileName, fmOpenReadWrite);/////*****
SetLength(strTemp, flstrmTemp.Size);
flstrmTemp.Read(strTemp[1], flstrmTemp.Size);
flstrmtemp.position:=0;
flstrmtemp.write(buf,6);
flstrmtemp.write(strTemp[1],Length(strTemp));/////*****
flstrmtemp.position:=0;/////*****
SetLength(strTemp, flstrmTemp.Size);
flstrmTemp.Read(strTemp[1], flstrmTemp.Size);
flstrmTemp.Free;
end;
流不分是否二进制,最小单位是字节。>>二进制数据流如何传递到另一函数变量中
传送指针、变量参数、可变参数等都行
请帮助?!
img:pByte;
flstrmTemp := TFileStream.Create(gifname, fmOpenRead);
img:=AllocMem(flstrmTemp.Size);
flstrmTemp.Read(img&, flstrmTemp.Size);
编译上面的代码时提示:‘&’为非法字符,请指教!我们的想法是想将gifname文件以二进制的方式写入到img变量中!
>>img:pByte;
>>flstrmTemp := TFileStream.Create(gifname, fmOpenRead);
>>img:=AllocMem(flstrmTemp.Size);
>>flstrmTemp.Read(img&, flstrmTemp.Size);
这样改
type
ArrByte=array[0..maxint] of Byte;
PArrByte=^ArrByte;
...
var
img:PArrByte;
...flstrmTemp := TFileStream.Create(gifname, fmOpenRead);
img:=AllocMem(flstrmTemp.Size);
flstrmTemp.seek(0,0);//加上这句规范些
flstrmTemp.Read(img^[0], flstrmTemp.Size);