- //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:\WINDOWS\Desktop\1.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:\WINDOWS\Desktop\1.txt');
- vMemoryStream := TMemoryStream.Create;
- try
- StringToStream(Memo2.Text, vMemoryStream);
- vMemoryStream.Position := 0;
- Memo1.Lines.LoadFromStream(vMemoryStream);
- finally
- vMemoryStream.Free;
- end;
- end;
- ///////End Demo
delphi 怎么将一个流转换成字符串?
最新推荐文章于 2023-04-14 20:21:12 发布
本文介绍了使用Pascal语言进行字符串处理的方法,包括字符串与文件、内存流之间的转换。通过具体的函数实现,展示了如何读写字符串到文件及内存流中。
762

被折叠的 条评论
为什么被折叠?



