On Mon, 28 Jul 2008 02:12:35 -0700 (PDT) leledumbo <[EMAIL PROTECTED]> wrote:
> > I need FPC (or better, Pascal) console IO feature for my OS. That is, > Write(Ln) (and possibly Read(Ln)) with variable number and type of > arguments. I already have my own, but each can only take one > argument. So, a statement like: > > WriteLn('Hello, I am ',20,' years old'); > > must be splitted into: > > WriteString('Hello, I am '); > WriteLong(20); > WriteStrLn(' years old'); Can you use variants? procedure DebugLn(Args: array of const); var i: Integer; begin for i:=Low(Args) to High(Args) do begin case Args[i].VType of vtInteger: writeln(IntToStr(Args[i].vinteger)); vtInt64: writeln(IntToStr(Args[i].VInt64^)); ... end; end; See lazarus lclproc.pas for a complete example. > This is very inconvenient. Moreover, assertions needs it. My first > attempt, is to comment out {$undef FPC_HAS_FEATURE_CONSOLEIO} in my > system.pas. But then, FPC argues about Unknown compilerproc > "fpc_write_text_shortstr". I found it in text.inc, but it's only > included if FPC_HAS_FEATURE_TEXTIO is defined. Knowing that I don't > yet have any file system driver, I guess it's impossible to reach my > goal by defining it. What's the correct way? Mattias _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal