delphi 怎么将一个文件流转换成字符串(String到流,String到文件,相互转化)

摘要:
//fromhttp://kingron.myetang.com/zsfunc0d.htm(*//标题:充分利用pascal字符串类型说明:和PChar不同,string可以保存#0字符在其中;示例文件、内存流字符串之间转换设计:Zswang日期:2002-01-25支持:wjhu111@21cn.com//*)///////BeginSourcefunctionStringToFile(mStr

//from
http://kingron.myetang.com/zsfunc0d.htm
(*//
标题:充分利用pascal字符串类型
说明:和PChar不同,string可以保存#0字符在其中;示例文件、内存流字符串之间转换
设计:Zswang
日期:2002-01-25
支持:wjhu111@21cn.com
//*)
///////Begin Source
function StringToFile(mString: string; mFileName: TFileName): Boolean;
{ 返回字符串保存到文件是否成功 }
var
vFileChar: file of Char;
I: Integer;
begin
{$I-}
AssignFile(vFileChar, mFileName);
Rewrite(vFileChar);
for I := 1 to Length(mString) do Write(vFileChar, mString[I]);
CloseFile(vFileChar);
{$I+}
Result := (IOResult = 0) and (mFileName <> '');
end; { StringToFile }
function FileToString(mFileName: TFileName): string;
{ 返回从文件载入字符串 }
var
vFileChar: file of Char;
vChar: Char;
begin
Result := '';
{$I-}
AssignFile(vFileChar, mFileName);
Reset(vFileChar);
while not Eof(vFileChar) do begin
Read(vFileChar, vChar);
Result := Result + vChar;
end;
CloseFile(vFileChar);
{$I+}
end; { FileToString }
function StreamToString(mStream: TStream): string;
{ 将内存流转换成字符串 }
var
I: Integer;
begin
Result := '';
if not Assigned(mStream) then Exit;
SetLength(Result, mStream.Size);
for I := 0 to Pred(mStream.Size) do try
mStream.Position := I;
mStream.Read(Result[Succ(I)], 1);
except
Result := '';
end;
end; { StreamToString }
function StringToStream(mString: string; mStream: TStream): Boolean;
{ 返回将字符串保存到内存流是否成功 }
var
I: Integer;
begin
Result := True;
try
mStream.Size := 0;
mStream.Position := 0;
for I := 1 to Length(mString) do mStream.Write(mString[I], 1);
except
Result := False;
end;
end; { StringToStream }
///////End Source
///////Begin Demo
procedure TForm1.Button1Click(Sender: TObject);
var
vMemoryStream: TMemoryStream;
begin
Memo1.Text := FileToString('C:WINDOWSDesktop1.txt');
vMemoryStream := TMemoryStream.Create;
try
Memo1.Lines.SaveToStream(vMemoryStream);
Memo2.Text := StreamToString(vMemoryStream);
finally
vMemoryStream.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
vMemoryStream: TMemoryStream;
begin
StringToFile(Memo2.Text, 'C:WINDOWSDesktop1.txt');
vMemoryStream := TMemoryStream.Create;
try
StringToStream(Memo2.Text, vMemoryStream);
vMemoryStream.Position := 0;
Memo1.Lines.LoadFromStream(vMemoryStream);
finally
vMemoryStream.Free;
end;
end;
///////End Demo

http://www.delphitop.com/html/zifuchuan/1711.html

免责声明:文章转载自《delphi 怎么将一个文件流转换成字符串(String到流,String到文件,相互转化)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js 递归树结构数据查找父级centos7进入单用户模式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java常用加解密工具类

packagecom.sh.springboottdemo2.util; importcom.sun.org.apache.xerces.internal.impl.dv.util.Base64; importjavax.crypto.Cipher; importjavax.crypto.KeyGenerator; importjavax.crypt...

Redis值的写入与读取

首先需要添加引用ServiceStack.Redis using(IRedisClient client=new RedisClient("127.0.0.1",6379,"123456",2)) { #region 单个增加与读取 //删除当前数据所有key...

C#压缩指定的文件并生成zip文件

程序集需要添加的引用是:ICSharpCode.SharpZipLib.dll 使用实例: //执行压缩 ClsZip.Zip(downZipPath, sourceTopPath, 1, "", allFilePath);//执行下载 ctrlDcAllGrxx.download(do...

Android字符串相关类

Class Overview CharSequence定义为public interface。该接口用于表示一个有序字符的集合,并在其中定义里了处理字符的方法。 已知的常用间接子类有String, StringBuffer, StringBuilder ..... Public Methods public abstract int leng...

Spring 框架的事务管理

1. Spring 框架的事务管理相关的类和API PlateformTransactionManager 接口: 平台事务管理器(真正管理事务的类); TransactionDefinition 接口: 事务定义信息(事务的隔离级别,传播行为,超时,只读等); TransactionStatus 接口: 事务的状态; 平台事务管理器真正管理事务对...

使用jenkins的SSH Publishers远程执行

https://www.cnblogs.com/zoujiaojiao/p/12574016.html 使用jenkins的SSH Publishers远程执行 配置 SSH Servers 如图,系统管理->系统设置->SSH Servers 点击 往下翻到: 远程脚本功能说明 本次远程脚本需要实现:a.将WORKERSPACE下面的包传到...