fstream是stream的派生类,即文件流(设备对象是文件),作为文件在C++中的一仿喊芹个抽象对象。
string是C++中把备毕动态字符数组封装之后的一个新的使用更方便的字符串类。
在C++控制台程序中,该类名即为string,在MFC中,使用的是名为CString的字符串类渗型,它与API 函数的关系更紧密些。
function StringToFile(mString: stringmFileName: 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: stringmStream: 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)