快救我!!!!!我必须在六点钟被救,谢谢各位大哥!!!!
我有以下代码,是对Tfilestream的一个重栽,但其中的一个方法总不能被编译(用#####表示),希望我能被及时救处火海,谢了!!!鞠躬.请快Emailto:ckbmail@21cn.com
unit mystream;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
Tmystream=class(Tfilestream)
private
fkey:string;
{ Private declarations }
public
#####constructor Create(const FileName: string; Mode: Word);
function read(var buffer;count:longint):longint;override;
function write(const buffer;count:longint):longint;override;
property key:string read fkey write fkey;
{ Public declarations }
end;
type
Tform1=class(Tform)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1:TForm;
implementation
{$R *.DFM}
function tmystream.write(const buffer;count:longint):longint;
var
pbu,pmy,mykey:pchar;
i,enc:integer;
begin
getmem(pmy,count);
mykey:=pchar(key);
try
pbu:=pchar(@buffer);
for i:=0 to count-1 do
begin
enc:=(ord(pbu[i])+ord(mykey[(i mod length(key))])) mod 256;
pmy[i]:=char(enc);
end;
result:=inherited write(pmy^,count);
finally
freemem(pmy,count);
end;
end;
function tmystream.read(var buffer;count:longint):longint;
var
pbu,pmy,mykey:pchar;
i,mycount,enc:integer;
begin
getmem(pmy,count);
mykey:=pchar(key);
try
mycount:=inherited read(pmy^,count);
pbu:=pchar(@buffer);
for i:=0 to mycount-1 do
begin
enc:=(ord(pmy[i])-ord(mykey[(i mod length(key))])) mod 256;
pbu[i]:=chr(enc);
end;
finally
freemem(pmy,count);
end;
result:=mycount;
end;
end.