[Back to TEXTFILE SWAG index] [Back to Main SWAG index] [Original]

     GB>Could you Write a MCSEL ;-) wich gives us some hints For making Text i/o
     GB>_much_ faster ? I read that about the SetTextBuf although I never tried
     GB>it. What are other examples? Some little example-sources ?

    Type BBTYP   = ^BIGBUF;
         BIGBUF  = Array[0..32767] of Char;

    Var BUFFin   : BBTYP;        { general-use large Text I/O buffer }
    Var BUFFOUT  : BBTYP;
        F        : Text;
        S        : String;

    Procedure BBOPEN (Var F : Text; FN : String; OMODE : Char;
                      Var BP : BBTYP);
    Var S : String;
    begin
    {$I-}
      Assign (F,FN); New (BP); SetTextBuf (F,BP^);
      Case UpCase(OMODE) of
        'R' : begin
                Reset (F); S := 'Input'
              end;
        'W' : begin
                ReWrite (F); S := 'Output'
              end;
        'A' : begin
                Append (F); S := 'Extend'
              end
        else
      end;
    {$I+}
      if Ioresult <> 0 then
        begin
          Dispose (BP); FATAL ('Cannot open '+FN+' For '+S+' - Terminating')
        end
    end;  { BBOPEN }

    to use:

      BBOPEN (F,'myFile.txt',r,BUFFin);
      While not Eof (F) do
        begin
          readln (F,S);
          etc.
        end;
      Close (F); Dispose (BUFFin)

[Back to TEXTFILE SWAG index] [Back to Main SWAG index] [Original]