mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 13:06:18 +02:00
fcl-js: started TFileWriter for nodejs
git-svn-id: trunk@40039 -
This commit is contained in:
parent
703f5ea97e
commit
024c6de3cc
@ -18,6 +18,10 @@ unit jswriter;
|
|||||||
{ $DEFINE DEBUGJSWRITER}
|
{ $DEFINE DEBUGJSWRITER}
|
||||||
{AllowWriteln}
|
{AllowWriteln}
|
||||||
|
|
||||||
|
{$if defined(fpc) or defined(NodeJS)}
|
||||||
|
{$define HasFileWriter}
|
||||||
|
{$endif}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@ -72,17 +76,22 @@ Type
|
|||||||
Property OnWriting: TTextWriterWriting read FOnWriting write FOnWriting;
|
Property OnWriting: TTextWriterWriting read FOnWriting write FOnWriting;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef fpc}
|
{$ifdef HasFileWriter}
|
||||||
{ TFileWriter }
|
{ TFileWriter }
|
||||||
|
|
||||||
TFileWriter = Class(TTextWriter)
|
TFileWriter = Class(TTextWriter)
|
||||||
Protected
|
Protected
|
||||||
|
{$ifdef NodeJS}
|
||||||
|
{$else}
|
||||||
FFile : Text;
|
FFile : Text;
|
||||||
|
{$endif}
|
||||||
FFileName : String;
|
FFileName : String;
|
||||||
Function DoWrite(Const S : TJSWriterString) : Integer; override;
|
Function DoWrite(Const S : TJSWriterString) : Integer; override;
|
||||||
|
{$ifdef FPC_HAS_CPSTRING}
|
||||||
Function DoWrite(Const S : UnicodeString) : Integer; override;
|
Function DoWrite(Const S : UnicodeString) : Integer; override;
|
||||||
|
{$endif}
|
||||||
Public
|
Public
|
||||||
Constructor Create(Const AFileNAme : String);
|
Constructor Create(Const AFileName : String); reintroduce;
|
||||||
Destructor Destroy; override;
|
Destructor Destroy; override;
|
||||||
Procedure Flush;
|
Procedure Flush;
|
||||||
Procedure Close;
|
Procedure Close;
|
||||||
@ -214,7 +223,7 @@ Type
|
|||||||
Public
|
Public
|
||||||
Function EscapeString(const S: TJSString; Quote: TJSEscapeQuote = jseqDouble): TJSString;
|
Function EscapeString(const S: TJSString; Quote: TJSEscapeQuote = jseqDouble): TJSString;
|
||||||
Constructor Create(AWriter : TTextWriter);
|
Constructor Create(AWriter : TTextWriter);
|
||||||
{$ifdef fpc}
|
{$ifdef HasFileWriter}
|
||||||
Constructor Create(Const AFileName : String);
|
Constructor Create(Const AFileName : String);
|
||||||
{$endif}
|
{$endif}
|
||||||
Destructor Destroy; override;
|
Destructor Destroy; override;
|
||||||
@ -803,7 +812,7 @@ begin
|
|||||||
FOptions:=[{$ifdef FPC_HAS_CPSTRING}woUseUTF8{$endif}];
|
FOptions:=[{$ifdef FPC_HAS_CPSTRING}woUseUTF8{$endif}];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef fpc}
|
{$ifdef HasFileWriter}
|
||||||
constructor TJSWriter.Create(const AFileName: String);
|
constructor TJSWriter.Create(const AFileName: String);
|
||||||
begin
|
begin
|
||||||
Create(TFileWriter.Create(AFileName));
|
Create(TFileWriter.Create(AFileName));
|
||||||
@ -1774,27 +1783,37 @@ begin
|
|||||||
FSkipCurlyBrackets:=False;
|
FSkipCurlyBrackets:=False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef fpc}
|
{$ifdef HasFileWriter}
|
||||||
{ TFileWriter }
|
{ TFileWriter }
|
||||||
|
|
||||||
Function TFileWriter.DoWrite(Const S: TJSWriterString) : Integer;
|
Function TFileWriter.DoWrite(Const S: TJSWriterString) : Integer;
|
||||||
begin
|
begin
|
||||||
Result:=Length(S);
|
Result:=Length(S);
|
||||||
|
{$ifdef NodeJS}
|
||||||
|
system.writeln('TFileWriter.DoWrite ToDo ',S);
|
||||||
|
{$else}
|
||||||
system.Write(FFile,S);
|
system.Write(FFile,S);
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$ifdef FPC_HAS_CPSTRING}
|
||||||
Function TFileWriter.DoWrite(Const S: UnicodeString) : Integer;
|
Function TFileWriter.DoWrite(Const S: UnicodeString) : Integer;
|
||||||
begin
|
begin
|
||||||
Result:=Length(S)*SizeOf(UnicodeChar);
|
Result:=Length(S)*SizeOf(UnicodeChar);
|
||||||
system.Write(FFile,S);
|
system.Write(FFile,S);
|
||||||
end;
|
end;
|
||||||
|
{$endif}
|
||||||
|
|
||||||
Constructor TFileWriter.Create(Const AFileNAme: String);
|
Constructor TFileWriter.Create(Const AFileName: String);
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FFileName:=AFileName;
|
FFileName:=AFileName;
|
||||||
|
{$ifdef NodeJS}
|
||||||
|
system.writeln('TFileWriter.Create ToDo ',AFileName);
|
||||||
|
{$else}
|
||||||
Assign(FFile,AFileName);
|
Assign(FFile,AFileName);
|
||||||
Rewrite(FFile);
|
Rewrite(FFile);
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Destructor TFileWriter.Destroy;
|
Destructor TFileWriter.Destroy;
|
||||||
@ -1805,12 +1824,20 @@ end;
|
|||||||
|
|
||||||
Procedure TFileWriter.Flush;
|
Procedure TFileWriter.Flush;
|
||||||
begin
|
begin
|
||||||
|
{$ifdef NodeJS}
|
||||||
|
system.writeln('TFileWriter.Flush ToDO');
|
||||||
|
{$else}
|
||||||
system.Flush(FFile);
|
system.Flush(FFile);
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TFileWriter.Close;
|
Procedure TFileWriter.Close;
|
||||||
begin
|
begin
|
||||||
|
{$ifdef NodeJS}
|
||||||
|
system.writeln('TFileWriter.DoWrite ToDo ');
|
||||||
|
{$else}
|
||||||
system.Close(FFile);
|
system.Close(FFile);
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user