RT。
我做了一个SQL脚本加密工具,可是加密出来的密文有些字符是memo控件显示不了的
所以我将密文保存到硬盘的文件里
密文中有一些是对中文字符的加密密文数据量平均在10k~20k左右
我目前用的是TFileStream,可是它的大小有限制,9K以下吧(具体多大也没试过)请问还有其它的文件类型么?
能够保存得了密文就行。
我做了一个SQL脚本加密工具,可是加密出来的密文有些字符是memo控件显示不了的
所以我将密文保存到硬盘的文件里
密文中有一些是对中文字符的加密密文数据量平均在10k~20k左右
我目前用的是TFileStream,可是它的大小有限制,9K以下吧(具体多大也没试过)请问还有其它的文件类型么?
能够保存得了密文就行。
额,莫非是我设置错了
僵哥,能给些例子代码么?我用的是writebuffer。大小有限
F: TFileStream;
Buffer: PAnsiChar;
BufferLen: Integer;
begin
BufferLen := 10 * 1024 * 1024; //10MB
GetMem(Buffer, BufferLen);
try
FillChar(Buffer^, BufferLen, 65);//用字符A填充
F := TFileStream.Create('c:\test.dat', fmCreate);
try
F.WriteBuffer(Buffer^, BufferLen);
finally
F.Free;
end;
finally
FreeMem(Buffer);
end;
end;
3Q
还想问个问题var
FS: TFileStream;
begin
FS:=TFileStream.Create(path + 'Encode.dat', fmOpenWrite or fmCreate);
try
FS.Write(strEncoded,SizeOf(strEncoded));
finally
FS.Free;
end;
end;strEncoded是保存了加密后的密文,然后我这里调用write方法时为什么sizeof(strEncoded)结果是4?
我看了strEncoded里保存的内容是比较多的,sizeof结果怎么跟指针大小一样呢??
FS: TFileStream;
begin
FS:=TFileStream.Create(path + 'Encode.dat', fmOpenWrite or fmCreate);
try
if Length(strEncoded) > 0 then FS.Write(strEncoded[1],Length(strEncoded));
finally
FS.Free;
end;
end;
嗯嗯,确实没有多
那僵哥,我如果要将数据从保存的encode.dat文件中读入一个字符串,应该如何操作??
最后一个问题了哈,解决了马上给分,呵呵
FS: TFileStream;
strEncoded: String;
begin
FS:=TFileStream.Create(path + 'Encode.dat', fmOpenRead);
try
SetLength(strEncoded, FS.Size);
FS.ReadBuffer(strEncoded[1],Length(strEncoded));
finally
FS.Free;
end;
end;