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

{$B-,D-,F-,I-,L-,N-,O-,R-,S-,V-}

Unit Filestr;

Interface

Uses Dos;

Function GetFstr(Var f: Text): String;
Procedure OpenFStr(Var f: Text);

Implementation

Var
  FStrBuff     : String;

Function GetFStr(Var f: Text): String;
  begin
    GetFStr     := FStrBuff;
    FStrBuff[0] := #0;
    TextRec(f).BufPos := 0;
  end; { GetFStr }
  
{$F+}
Function FStrOpen(Var f: TextRec):Word;
  { This does nothing except return zero to indicate success }
  begin
    FStrOpen := 0;
  end; { FStrOpen }
  
Function FStrInOut(Var f: TextRec):Word;
  begin
    FStrBuff[0] := chr(F.BufPos);  
    FStrInOut   := 0;
  end; { FStrInOut }  
{$F-}

Procedure OpenFStr(Var f: Text);
  begin
    With TextRec(f) do begin
      mode      := fmClosed;
      BufSize   := Sizeof(buffer);
      OpenFunc  := @FStrOpen;
      InOutFunc := @FStrInOut;
      FlushFunc := @FStrInOut;
      CloseFunc := @FStrOpen;
      BufPos    := 0;
      Bufend    := 0;
      BufPtr    := @FStrBuff[1];
      Name[0]   := #0;
    end; { With }
    FStrBuff[0] := #0;
    reWrite(f);
  end;  { AssignFStr }   


end.  

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