瀏覽代碼

+ Added tstringstream example (merged)

michael 24 年之前
父節點
當前提交
d1d1c8b0b2
共有 2 個文件被更改,包括 44 次插入0 次删除
  1. 1 0
      fcl/tests/README
  2. 43 0
      fcl/tests/sstream.pp

+ 1 - 0
fcl/tests/README

@@ -43,3 +43,4 @@ dsocksvr.pp   Unix socket server application. Tests ssockets.
 sockcli.pp   Unix socket client application. Tests TUnixStream in ssockets.
 isockcli.pp   Inet socket server application. Tests TInetStream in ssockets.
 dsockcli.pp   Dual socket server application. Tests ssockets.
+sstream.pp    Tests TStringStream object.

+ 43 - 0
fcl/tests/sstream.pp

@@ -0,0 +1,43 @@
+Program TestStream;
+
+uses classes;
+
+Var Stream : TStringStream;
+    S,T : AnsiString;
+   
+begin
+  S:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+  T:=S;
+  Writeln ('Creating stream.');
+  Stream:=TStringStream.Create(S);
+  Writeln ('Initial Size : ',Stream.Size);
+  Writeln ('Initial Position : ',Stream.Position);
+  Writeln ('Setting new size to 100');
+  Stream.Size:=100;
+  Writeln ('New Size : ',Stream.Size);
+  Writeln ('new Position : ',Stream.Position);
+  Stream.WriteByte  (1);
+  Stream.WriteWord  (2);
+  Stream.WriteDWord (3);
+  Stream.WriteString (S);
+  Writeln ('Size after write : ',Stream.Size);
+  Writeln ('Position after write : ',Stream.Position);
+  Writeln ('Truncating size');
+  Stream.Size:=Stream.Position;
+  Writeln ('Stream Size is : ',Stream.Size);
+  Writeln ('Stream Position : ',Stream.Position);
+  Writeln ('Seek to position 0 : ', Stream.Seek(0,soFromBeginning));
+  Writeln ('new Position : ',Stream.Position);
+  If Stream.ReadByte<>1 then  Writeln ('First byte not 1');
+  If Stream.ReadWord<>2 then  Writeln ('First word not 2');
+  If Stream.ReadDWord<>3 then Writeln ('First Word not 3');
+  T:=Stream.ReadString(Length(S));
+  If Length(T)<>Length(S) then 
+    Writeln ('Couldn''t read string.');
+  Stream.WriteByte  (1);
+  Stream.WriteWord  (2);
+  Stream.WriteDWord (3);
+  Stream.WriteBuffer (S[1],Length(S));
+  Writeln ('Stream Size is : ',Stream.Size);
+  Stream.Free;
+end.