Explorar el Código

+ Added stringstream example

michael hace 25 años
padre
commit
d08acb75ec
Se han modificado 3 ficheros con 45 adiciones y 1 borrados
  1. 1 1
      fcl/tests/Makefile.fpc
  2. 1 0
      fcl/tests/README
  3. 43 0
      fcl/tests/sstream.pp

+ 1 - 1
fcl/tests/Makefile.fpc

@@ -6,7 +6,7 @@
 programs=stringl dparser fstream mstream list threads testrtf \
          cfgtest xmldump htdump testcgi tidea \
          b64test b64test2 b64enc b64dec restest testz testz2 \
-         istream doecho testproc
+         istream doecho testproc sstream
 programs_win32=showver
 programs_linux=sockcli isockcli dsockcli socksvr isocksvr dsocksvr
 

+ 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.