d2c_sysfile

Top  Previous  Next

Pretranslated C++ code > Delphi RTL/VCL > C++ code for other compilers > d2c_sysfile

d2c_sysfile contains Delphi2Cpp helper code for basic file reading and writing routines.

 

 

struct TFileRec {

THandle Handle;

int Mode;

WORD Flags;

unsigned int RecSize;

unsigned char _private [ 28 ];

unsigned char UserData [ 32 ];

Char Name [ 260 ];

};

 

template <typename T>

struct TTypedFile

{

THandle Handle;

int Mode;

WORD Flags;

unsigned int RecSize;

unsigned char _private [ 28 ];

unsigned char UserData [ 32 ];

Char Name [ 260 ];

};

 

typedef char TextBufA [ 260 ];

 

struct TTextRec {

THandle Handle;

int Mode;

WORD Flags;

unsigned int BufSize;

unsigned int BufPos;

unsigned int BufEnd;

char* BufPtr;

void* OpenFunc;

void* InOutFunc;

void* FlushFunc;

void* CloseFunc;

unsigned char UserData [ 32 ];

Char Name [ 260 ];

WORD CodePage;

char LineEnd[3];

TextBufA Buffer;

};

 

 

typedef TTypedFile<unsigned char> file;

typedef TTextRec Text;

typedef TTextRec *ptext;

 

// System.h enum TTextLineBreakStyle {tlbsLF, tlbsCRLF, tlbsCR };

 

extern bool FileNameCaseSensitive;

extern bool CtrlZMarksEOF;

extern TTextLineBreakStyle DefaultTextLineBreakStyle;

 

const Char DirectorySeparator = _T('\\');

const Char DriveSeparator = _T(':');

const Char PathSeparator = _T(';');

const int MaxPathLen = 260;

 

extern THandle UnusedHandle;

extern THandle StdInputHandle;

extern THandle StdOutputHandle;

extern THandle StdErrorHandle;

 

const bool LFNSupport = true;

const char ExtensionSeparator = '.';

extern TSet < UChar, 0, 255 > AllowDirectorySeparators;

extern TSet < UChar, 0, 255 > AllowDriveSeparators;

 

extern bool FileNameCaseSensitive;

extern bool CtrlZMarksEOF;

 

const int fsFromBeginning = 0;

const int fsFromCurrent = 1;

const int fsFromEnd = 2;

 

const THandle feInvalidHandle = ((THandle) - 1 );  //return value on FileOpen error

 

 

/* file input modes */

const int fmClosed = 0xD7B0;

const int fmInput = 0xD7B1;

const int fmOutput = 0xD7B2;

const int fmInOut = 0xD7B3;

//const int fmAppend = 0xD7B4;

extern TTextRec ErrOutput, Output, Input, Stdout, Stderr;

//extern unsigned char FileMode;

// System.h WORD IOResult( );

 

const int fmAppend = 0xD7B4;   // unknown in C++Builder 6?

 

 

typedef void ( * FileFunc )( TTextRec&  );

 

 

/****************************************************************************

                         Untyped File Management

****************************************************************************/

 

void AssignFile( TFileRec& f, const String& Name );

void AssignFile( TFileRec& f, Char c );

void Assign( TFileRec& f, const String& Name );

 

void Rewrite( TFileRec& f, int l = 128 );

void Reset( TFileRec& f, int l = 128 );

void CloseFile( TFileRec& f );

void Close( TFileRec& f );

 

void BlockWrite( TTypedFile<unsigned char>& f, void*& buf, int64_t Count, int& Result );

void BlockWrite( TTypedFile<unsigned char>& f, void*& buf, int Count, int& Result );

void BlockWrite( TTypedFile<unsigned char>& f, void*& buf, WORD Count, WORD& Result );

void BlockWrite( TTypedFile<unsigned char>& f, void*& buf, unsigned int Count, unsigned int& Result );

void BlockWrite( TTypedFile<unsigned char>& f, void*& buf, WORD Count, int& Result );

void BlockWrite( TTypedFile<unsigned char>& f, void*& buf, int Count );

void BlockRead( TTypedFile<unsigned char>& f, void*& buf, int Count, int& Result );

void BlockRead( TTypedFile<unsigned char>& f, void*& buf, int64_t Count );

int64_t FileSize( TFileRec& f ); // FileSize can't be used on a text TTypedFile<unsigned char>.

int64_t FilePos( TFileRec& f, int l = 128 );

void Seek( TTypedFile<unsigned char>& f, int64_t Pos );

void Rename( TTypedFile<unsigned char>& f, const char* P );

void Rename( TTypedFile<unsigned char>& f, const wchar_t* P );

void Rename( TTypedFile<unsigned char>& f, const AnsiString& s );

void Rename( TTypedFile<unsigned char>& f, const WideString& s );

void Rename( TTypedFile<unsigned char>& f, char c );

void Rename( TTypedFile<unsigned char>& f, wchar_t c );

bool Eof( TFileRec& f, int l = 128 );

void Truncate( TFileRec& f, int RecSize );

 

template <typename T> void AssignFile( TTypedFile<T>& f, const String& Name ) ...

template <typename T> void AssignFile( TTypedFile<T>& f, const Char* P ) ...

template <typename T> void AssignFile( TTypedFile<T>& f, Char c ) ...

template <typename T> int64_t FileSize( TTypedFile<T>& f ) ...

template <typename T> bool Eof( TTypedFile<T>& f ) ...

template <typename T> void CloseFile( TTypedFile<T>& f ) ...

template <typename T> void Close( TTypedFile<T>& f ) ...

template <typename T> void Reset( TTypedFile<T>& f, int l = -1 ) ...

template <typename T> void Rewrite( TTypedFile<T>& f, int l = -1 ) ...

template <typename T> void Write( TTypedFile<T>& f, void* buf ) ...

template <typename T> void Read( TTypedFile<T>& f, void* buf ) ...

template <typename T> void Truncate( TTypedFile<T>& f ) ...

 

 

/****************************************************************************

                           Text File Management

****************************************************************************/

 

 

void Assign( TTextRec& f, const String& Name );

void Assign( TTextRec& t, Char c );

void AssignFile( TTextRec& f, const String& Name );

void AssignFile( TTextRec& t, Char c );

void CloseFile( TTextRec& t );

void Close( TTextRec& t );

void Rewrite( TTextRec& t );

void Reset( TTextRec& t );

void Append( TTextRec& t );

// System.h void Flush( TTextRec& t );

void Erase( TTextRec& t );

void Rename( TTextRec& t, const char* P );

void Rename( TTextRec& t, const wchar_t* P );

void Rename( TTextRec& t, const AnsiString& s );

void Rename( TTextRec& t, const WideString& s );

void Rename( TTextRec& t, char c );

void Rename( TTextRec& t, wchar_t c );

bool Eof( TTextRec& t );

bool Eof( );

bool EoLn( TTextRec& t );

bool EoLn( );

bool SeekEof( TTextRec& t );

bool SeekEof( );

bool SeekEoLn( TTextRec& t );

bool SeekEoLn( );

void SetTextBuf( TTextRec& t, void* buf, int size );

void SetTextLineEnding(TTextRec& t, String& Ending);

 

 

void Write( TTextRec& t, const SmallString<255> s, int Len = 0 );

void Write( TTextRec& t, const char* P, int Len = 0 );

void Write( TTextRec& t, const AnsiString& s, int Len = 0 );

void Write( TTextRec& t, const wchar_t* P, int Len = 0 );

void Write( TTextRec& t, const WideString& s, int Len = 0 );

void Write( TTextRec& t, long l, int Len = 0 );

void Write( TTextRec& t, int l, int Len = 0 );

void Write( TTextRec& t, unsigned int l, int Len = 0 );

void Write( TTextRec& t, unsigned short l, int Len = 0 );

void Write( TTextRec& t, uint64_t q, int Len = 0 );

void Write( TTextRec& t, int64_t i, int Len = 0 );

void Write( TTextRec& t, long double r, int rt = -1, int fixkomma = -1 );

void Write( TTextRec& t, double r, int rt = -1, int fixkomma = -1 );

void Write( TTextRec& t, Currency c, int fixkomma = -1, int Len = 0 );

void Write( TTextRec& t, bool b, int Len = 0 );

void Write( TTextRec& t, char c, int Len = 0 );

void Write( TTextRec& t, unsigned char c, int Len = 0 );

void Write( TTextRec& t, wchar_t c, int Len = 0 );

void WriteLn( TTextRec& t );

void WriteLn( TTextRec& t, const SmallString<255> s, int Len = 0 );

void WriteLn( TTextRec& t, const char* P, int Len = 0 );

void WriteLn( TTextRec& t, const AnsiString& s, int Len = 0 );

void WriteLn( TTextRec& t, const wchar_t* P, int Len = 0 );

void WriteLn( TTextRec& t, const WideString& s, int Len = 0 );

void WriteLn( TTextRec& t, long l, int Len = 0 );

void WriteLn( TTextRec& t, int l, int Len = 0 );

void WriteLn( TTextRec& t, unsigned int l, int Len = 0 );

void WriteLn( TTextRec& t, unsigned short l, int Len = 0 );

void WriteLn( TTextRec& t, uint64_t q, int Len = 0 );

void WriteLn( TTextRec& t, int64_t i, int Len = 0 );

void WriteLn( TTextRec& t, long double r, int rt = -1, int fixkomma = -1 );

void WriteLn( TTextRec& t, double r, int rt = -1, int fixkomma = -1 );

void WriteLn( TTextRec& t, Currency c, int fixkomma, int Len = -1 );

void WriteLn( TTextRec& t, bool b, int Len = 0 );

void WriteLn( TTextRec& t, char c, int Len = 0 );

void WriteLn( TTextRec& t, unsigned char c, int Len = 0 );

void WriteLn( TTextRec& t, wchar_t c, int Len = 0 );

void Write( const SmallString<255> s, int Len = 0 );

void Write( const char* P, int Len = 0 );

void Write( const AnsiString& s, int Len = 0 );

void Write( long l, int Len = 0 );

void Write( int l, int Len = 0 );

void Write( unsigned int l, int Len = 0 );

void Write( uint64_t q, int Len = 0 );

void Write( int64_t i, int Len = 0 );

void Write( long double r, int rt = -1, int fixkomma = -1 );

void Write( double r, int rt = -1, int fixkomma = -1 );

void Write( Currency c, int fixkomma = -1, int Len = 0 );

void Write( bool b, int Len = 0 );

void Write( char c, int Len = 0 );

void WriteLn( );

void WriteLn( const SmallString<255> s, int Len = 0 );

void WriteLn( const char* P, int Len = 0 );

void WriteLn( const AnsiString& s, int Len = 0 );

void WriteLn( long l, int Len = 0 );

void WriteLn( int l, int Len = 0 );

void WriteLn( unsigned int l, int Len = 0 );

void WriteLn( uint64_t q, int Len = 0 );

void WriteLn( int64_t i, int Len = 0 );

void WriteLn( long double r, int rt = -1, int fixkomma = -1 );

void WriteLn( double r, int rt = -1, int fixkomma = -1 );

void WriteLn( Currency c, int fixkomma = -1, int Len = 0 );

void WriteLn( bool b, int Len = 0 );

void WriteLn( char c, int Len = 0 );

void Write( wchar_t c, int Len = 0);

void WriteLn( wchar_t c, int Len = 0 );

void Write( const wchar_t* P, int Len = 0 );

void Write( const WideString& s, int Len = 0 );

void WriteLn( const wchar_t* P, int Len = 0 );

void WriteLn( const WideString& s, int Len = 0 );

 

 

void Read( TTextRec& t, SmallString<255>& s );

void Read( TTextRec& t, char* s, int maxlen = 0x7FFFFFFF );

void Read( TTextRec& t, AnsiString& s );

void Read( TTextRec& t, char& c );

void Read( TTextRec& t, WideString& s );

void Read( TTextRec& t, wchar_t& c );

void Read( TTextRec& t, unsigned int& u );

void Read( TTextRec& t, unsigned short& u );

void Read( TTextRec& t, long double& v );

void Read( TTextRec& f, Currency& v );

void Read( TTextRec& t, double& v );

void Read( TTextRec& t, int64_t& i );

void Read( TTextRec& t, uint64_t& q );

void ReadLn( TTextRec& t);

void ReadLn( TTextRec& t, SmallString<255>& s );

void ReadLn( TTextRec& t, char* s, int maxlen = 0x7FFFFFFF );

void ReadLn( TTextRec& t, AnsiString& s );

void ReadLn( TTextRec& t, char& c );

void ReadLn( TTextRec& t, WideString& s );

void ReadLn( TTextRec& t, wchar_t& c );

void ReadLn( TTextRec& t, int& l );

void ReadLn( TTextRec& t, unsigned int& u );

void ReadLn( TTextRec& t, unsigned short& u );

void ReadLn( TTextRec& t, long double& v );

void ReadLn( TTextRec& f, Currency& v );

void ReadLn( TTextRec& t, double& v );

void ReadLn( TTextRec& t, int64_t& i );

void ReadLn( TTextRec& t, uint64_t& q );

void Read( SmallString<255>& s );

void Read( char* s, int maxlen = 0x7FFFFFFF );

void Read( AnsiString& s );

void Read( char& c );

void Read( WideString& s );

void Read( wchar_t& c );

void Read( int& l );

void Read( unsigned int& u );

void Read( long double& v );

void Read( double& v );

void Read( Currency& v );

void Read( int64_t& i );

void Read( uint64_t& q );

void ReadLn( );

void ReadLn( SmallString<255>& s );

void ReadLn( char* s, int maxlen = 0x7FFFFFFF );

void ReadLn( AnsiString& s );

void ReadLn( char& c );

void ReadLn( WideString& s );

void ReadLn( wchar_t& c );

void ReadLn( int& l );

void ReadLn( unsigned int& u );

void ReadLn( unsigned short& u );

void ReadLn( long double& v );

void ReadLn( double& v );

void ReadLn( Currency& v );

void ReadLn( int64_t& i );

void ReadLn( uint64_t& q );

 

template <unsigned char sz> void Write( TTextRec& t, SmallString<sz> s, int Len = 0 ) ...

template <unsigned char sz> void WriteLn( TTextRec& t, SmallString<sz> s, int Len = 0 ) ...

template <unsigned char sz> void Write( SmallString<sz> s, int Len = 0 ) ...

template <unsigned char sz> void WriteLn( SmallString<sz> s, int Len = 0 ) ...

template <unsigned char sz> void Read( TTextRec& t, SmallString<sz>& s ) ...

template <unsigned char sz> void ReadLn( TTextRec& t, SmallString<sz>& s ) ...

template <unsigned char sz> void Read( SmallString<sz>& s ) ...

template <unsigned char sz> void ReadLn( SmallString<sz>& s ) ...

 

 

void SetLineBreakStyle(System::Text& T, TTextLineBreakStyle Style);

WORD GetTextCodePage(const System::Text T);

void SetTextCodePage(System::Text& T, WORD CodePage);

void Flush(System::Text& T);

 

void InOutError();

void SetInOutRes(int NewValue);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



This page belongs to the Delphi2Cpp Documentation

Delphi2Cpp home  Content