unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
const
Data = 'Testing';
var
aMemoryStream: TMemoryStream;
aString: string;
i: Integer;
begin
aMemoryStream := TMemoryStream.Create;
for i := 1 to Data.Length do
aMemoryStream.WriteByte(Ord(Data[i]));
// First read attempt - OK
aString := '';
aMemoryStream.Position := 0;
for i := 1 to aMemoryStream.Size do
aString := aString + Chr(aMemoryStream.ReadByte);
ShowMessage(aString);
// Second read attempt - FAILED
aMemoryStream.Position := 0;
aString := aMemoryStream.ReadAnsiString;
ShowMessage(aString);
aMemoryStream.Free
end;
end.