我用了这两个控件,对一个文本文件进行编码和解码,可是编码再解码之后结果并不相同,不知道是不是我的用法不正确,请大家指点!procedure TForm1.Button14Click(Sender: TObject);
var
buffer : string;
filestream : tfilestream;
begin
filestream := tfilestream.Create('E:\temp.dat',fmopenread);
setLength(buffer,filestream.size);
filestream.ReadBuffer(buffer[1],filestream.Size);
filestream.Destroy; buffer := base64encoder.CodeString(buffer);
buffer := copy(buffer,3,length(buffer));
buffer := IdBase64Decoder1.CodeString(buffer); filestream := tfilestream.Create('E:\temp2.dat',fmcreate);
filestream.WriteBuffer(buffer,length(buffer));
filestream.Destroy;
end;其中的temp.dat文件内容全是字符串,大小10k多,编码再解码之后的temp2.dat却只有6k,好像被截断了,这是什么原因?
var
buffer : string;
filestream : tfilestream;
begin
filestream := tfilestream.Create('E:\temp.dat',fmopenread);
setLength(buffer,filestream.size);
filestream.ReadBuffer(buffer[1],filestream.Size);
filestream.Destroy; buffer := base64encoder.CodeString(buffer);
buffer := copy(buffer,3,length(buffer));
buffer := IdBase64Decoder1.CodeString(buffer); filestream := tfilestream.Create('E:\temp2.dat',fmcreate);
filestream.WriteBuffer(buffer,length(buffer));
filestream.Destroy;
end;其中的temp.dat文件内容全是字符串,大小10k多,编码再解码之后的temp2.dat却只有6k,好像被截断了,这是什么原因?
filestream.ReadBuffer(buffer[1],filestream.Size);使用string类型的 buffer会不会有问题?
或者不从文件中读取到buffer中,而直接把那个10k多大小的文本文件放到memo中,再赋给buffer:(如下) buffer := Memo1.Lines.Text;
buffer := base64encoder.CodeString(buffer);
buffer := copy(buffer,3,length(buffer));
buffer := IdBase64Decoder1.CodeString(buffer); filestream := tfilestream.Create('E:\temp2.dat',fmcreate);
filestream.WriteBuffer(buffer,length(buffer));
filestream.Destroy;经过编码再解码后还是只有6K大小,郁闷!
那应该怎么写呀,先不管这句有没有错,
我试过直接把一串字符串赋值给buffer,经过编码解码返回得值也不对!请继续关注
现在去看推荐的网站