var
Size:longint;
stri,AString:string;
MyStream: TFileStream;
PChar:pansichar;
begin
MyStream:= TFileStream.Create('c:\6666.ico, fmOpenRead);
Size:=63;
MyStream.Read(Size, SizeOf(4));
GetMem(PChar, Size);
MyStream.Read(PChar,Size);
AString:= PChar;
showmessage(AString);
MyStream.Free;
end;
为什么没有信息呢。如何才能读到63-67之间的数据呢?
Size:longint;
stri,AString:string;
MyStream: TFileStream;
PChar:pansichar;
begin
MyStream:= TFileStream.Create('c:\6666.ico, fmOpenRead);
Size:=63;
MyStream.Read(Size, SizeOf(4));
GetMem(PChar, Size);
MyStream.Read(PChar,Size);
AString:= PChar;
showmessage(AString);
MyStream.Free;
end;
为什么没有信息呢。如何才能读到63-67之间的数据呢?
MyStream.Read(Size, SizeOf(4));//size不就被你改变了吗?
GetMem(PChar, Size);//为什么用pchar这样的名字呢 郁闷
。。
MyStream.position := size;
MyStream.read( astring, 4 );//67-63
AnIco:Integer;
Buffer:PChar;
iBytesRead:Integer;
begin
AnIco:=FileOpen('c:\6666.ico',fmOpenRead);
try
FileSeek(AnIco,63,0);
Buffer:=PChar(AllocMem(67));
iBytesRead:=FileRead(AnIco,Buffer^,1);
finally
FileClose(AnIco);
FreeMem(Buffer);
end;