I'm facing a strange issue, I don't know if it's StreamIO or TMemoryStream. The following program, compiled with fpc

Free Pascal Compiler version 3.2.0-beta [2019/04/26] for i386

(I checked trunk and I don't see changes in streams or streamio)

prints 3 lines but they are empty!

---
---
---

If I remove the "stream.position:=0", or I use $H- (or line:shortstring) or I avoid the RStream procedure (i.e I put what it does in the main program) or I use fpc 3.0.4 it correctly prints

--- a
--- b
--- c

Does it ring any bell?

The stream.position:=0 is really strange, since it just calls seeks which in turn only sets FPosition to 0 (and it was already 0!).

In my project I'm actually using a TMemoryStream, but it has the same issue.

Here's the test program

program Project1;
{$mode objfpc}
{$H+}

uses Classes, SysUtils, StreamIO;


procedure RStream(s:TStream);
var f:textfile;
    line:string;
begin
  AssignStream(f,s);
  Reset(f);
  while not eof(f) do
  begin
    readln(f,line);
    writeln('--- ',line);
  end;
  Close(f);
end;

var
  stream: TStringStream;
begin
  stream:=TStringStream.Create('a'#13#10'b'#13#10'c'#13#10);
  stream.position:=0;
  RStream(stream);
  stream.free;
  readln;
end.






_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to