DELPHI编程流转换如何操作原题是将
WORD文件加载到控件DBRichEdit中并将内存流进行编码转换成字符串保存到控件
Memo1_Words和控件Memo1_ssBlob中
代码如下:
if (length(OpenDialog1.FileName)=0 ) then
begin
showmessage('没有加载文件');
exit;
end;
MSStream:=TMemoryStream.Create;
try
MSStream := TMemoryStream.Create; // 创建内存流
TSString := TStringStream.Create('');
DBRichEdit.Lines.LoadFromFile(OpenDialog1.FileName);
DBRichEdit.Lines.SaveToStream(MSStream); MSStream.Position:=0;
//引用单元 EncdDecd,才能引用函数EncodeStream和DecodeStream
//DecodeStream(Tss,Tms);//在这个位置是将base64转为内存流
EncodeStream(MSStream,TSString); //将内存流转化base64
ssBlob:=TSString.DataString; //转换成 字符串
Memo1_Words.Text :=ssBlob; //保存为 字符串
Memo1_ssBlob.Text :=ssBlob; //保存为 字符串
finally
MSStream.Free;
TSString.Free;
end;
//=====================================================================
我现在的问题想再将Memo1_ssBlob内的字符再次转换到控件DBRichEdit02中,
并生成原先的WORD文档内容
WORD文件加载到控件DBRichEdit中并将内存流进行编码转换成字符串保存到控件
Memo1_Words和控件Memo1_ssBlob中
代码如下:
if (length(OpenDialog1.FileName)=0 ) then
begin
showmessage('没有加载文件');
exit;
end;
MSStream:=TMemoryStream.Create;
try
MSStream := TMemoryStream.Create; // 创建内存流
TSString := TStringStream.Create('');
DBRichEdit.Lines.LoadFromFile(OpenDialog1.FileName);
DBRichEdit.Lines.SaveToStream(MSStream); MSStream.Position:=0;
//引用单元 EncdDecd,才能引用函数EncodeStream和DecodeStream
//DecodeStream(Tss,Tms);//在这个位置是将base64转为内存流
EncodeStream(MSStream,TSString); //将内存流转化base64
ssBlob:=TSString.DataString; //转换成 字符串
Memo1_Words.Text :=ssBlob; //保存为 字符串
Memo1_ssBlob.Text :=ssBlob; //保存为 字符串
finally
MSStream.Free;
TSString.Free;
end;
//=====================================================================
我现在的问题想再将Memo1_ssBlob内的字符再次转换到控件DBRichEdit02中,
并生成原先的WORD文档内容
将WORD文档加载转换为内存流,编
码转换(EncodeStream(MSStream,TSString); //将内存流转化base64)成字符串我现在想字符串再次还原成WORD文档
...
uses EncdDecd;//RichEdit1,RichEdit2:TRichEdit;
//Memo1:TMemo;procedure TForm1.Button2Click(Sender: TObject);//打开Rtf文件
begin
if not OpenDialog1.Execute then exit; RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
end;procedure TForm1.Button1Click(Sender: TObject);
var
MSStream:TMemoryStream;
TSString,TSString2:TStringStream;
ssBlob:string;
begin
MSStream:=TMemoryStream.Create;
try
MSStream := TMemoryStream.Create; // 创建内存流
TSString := TStringStream.Create('');
try
RichEdit1.Lines.SaveToStream(MSStream); MSStream.Position:=0;
//引用单元 EncdDecd,才能引用函数EncodeStream和DecodeStream
//DecodeStream(Tss,Tms);//在这个位置是将base64转为内存流
EncodeStream(MSStream,TSString); //将内存流转化base64
ssBlob:=TSString.DataString; //转换成 字符串
Memo1.Text :=ssBlob; //保存为 字符串 MSStream.Clear;
Memo1.Lines.SaveToStream(MSStream);
TSString2:=TStringStream.Create('');
try
MSStream.Position:=0;
DecodeStream(MSStream,TSString2);
TSString2.Position:=0;
RichEdit2.Lines.LoadFromStream(TSString2);
finally
TSString2.Free;
end;
finally
TSString.Free;
end;
finally
MSStream.Free;
end;
end;