This documenta- tion describes the current state of development.
Note that interfaces and functionality may still change.

Prokee Modules:
  A
  B
  C
  D
  E
  F
  G
  I
  L
  M
  N
  O
  P
  R
  S
  T
  U
  W

     open all    |    close all

GUI Elements:
  B
  C
  I
  M
  P
  R
  S
  T

     open all    |    close all

GUI Interactions:
  B
  F
  H
  S

     open all    |    close all

GUI Layouts:
  L

     open all    |    close all

Games/Demos:
  M

     open all    |    close all

Third Party Libraries:
  P
  F
  Z

     open all    |    close all

Information about this Website / Informationen zu dieser Webseite:
In case of any questions, or comments, please feel free to contact me via email at apoll500@gmail.com.

Module reader [Version: v01] (Interface Reader)

   [Reader]   [AbsUniFileReader]

Contents

Inheritance:
Constructors:
Einlesen aus einem Speicherbereich:
StrReader
Reader *createStrReader(const char *a,int ln)
Char16Reader
Reader *createChar16Reader(const char16_t *a,int ln)
Char32Reader
Reader *createChar32Reader(const char32_t *a,int ln)
WcsReader
Reader *createWcsReader(const wchar_t *a,int ln)
Einlesen aus einer Datei:
FileReader (version 1)
Reader *createFileReader(FILE *f)
FileReader (version 2)
Reader *createFileReader(const char *filename)
FileReader (version 3) [WIN_ONLY]
Reader *createFileReader(const wchar_t *filename)
Einlesen von wchar_t Zeichen aus einer Datei:
WcsFileReader (version 1)
Reader *createWcsFileReader(FILE *f)
WcsFileReader (version 2)
Reader *createWcsFileReader(const char *filename)
WcsFileReader (version 3) [WIN_ONLY]
Reader *createWcsFileReader(const wchar_t *filename)
Einlesen von char16_t Zeichen aus einer Datei:
Char16FileReader (version 1)
Reader *createChar16FileReader(FILE *f)
Char16FileReader (version 2)
Reader *createChar16FileReader(const char *filename)
Char16FileReader (version 3) [WIN_ONLY]
Reader *createChar16FileReader(const wchar_t *filename)
Einlesen von char32_t Zeichen aus einer Datei:
Char32FileReader (version 1)
Reader *createChar32FileReader(FILE *f)
Char32FileReader (version 2)
Reader *createChar32FileReader(const char *filename)
Char32FileReader (version 3) [WIN_ONLY]
Reader *createChar32FileReader(const wchar_t *filename)

Members:
currcolumn
int currcolumn;
currline
int currline;
line_break_char
int line_break_char;
compatibility_mode
int compatibility_mode;

Methods:
getLine
int getLine()
getColumn
int getColumn()
Reading the next character:
get
int get()
getChar
int getChar()
Error handling:
getLastError
int getLastError()
getLastErrorDetail
int getLastErrorDetail()
resetLastError
void resetLastError()
Current line and current column:
getCurrLine
int getCurrLine()
getCurrColumn
int getCurrColumn()
setCurrLine
void setCurrLine(int n)
setCurrColumn
void setCurrColumn(int n)

Constructors

   StrReader


Diese Klasse liest Zeichen (vom Typ char) aus einem Speicherbereich.

Constructor:
StrReader(const char *a,int ln)

Factory Method:
Reader *ReaderInterface::createStrReader(const char *a,int ln)

Wrapper Class:
StrReaderWrapper(const char *a,int ln)

The static method ReaderInterface::createStrReader creates a new instance of class StrReader.

Parameters:
Type Name Direction Description
const char *a[IN]Pointer auf den Speicherbereich der den einzulesenden Text enthält.
int lnDie maximale Anzahl Zeichen, die aus dem Speicherbereich a eingelesen werden sollen.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse StrReader zurück.

Remarks:
Der Reader liest bis zu ln Zeichen aus dem Speicherbereich ein. Das Einlesen stoppt nicht an einem NULL-Byte. Die korrekte Angabe von ln ist daher kritisch. (Die Anzahl Zeichen ln bezieht sich dabei auf die Anzahl Zeichen in der Quelle, nicht auf die Anzahl der ausgegebenen Zeichen.)

Tests:
test1: Beispiele
test2: Beispiele
test3: Beispiele
test4: Beispiele
test5: Beispiele
test6: Beispiele

   Char16Reader


Diese Klasse liest Zeichen (vom Typ char16_t) aus einem Speicherbereich.

Constructor:
Char16Reader(const char16_t *a,int ln)

Factory Method:
Reader *ReaderInterface::createChar16Reader(const char16_t *a,int ln)

Wrapper Class:
Char16ReaderWrapper(const char16_t *a,int ln)

The static method ReaderInterface::createChar16Reader creates a new instance of class Char16Reader.

Parameters:
Type Name Direction Description
const char16_t *a[IN]Pointer auf den Speicherbereich der den einzulesenden Text enthält.
int lnDie maximale Anzahl Zeichen, die aus dem Speicherbereich a eingelesen werden sollen.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char16Reader zurück.

Remarks:
Der Reader liest bis zu ln Zeichen aus dem Speicherbereich ein. Das Einlesen stoppt nicht an einem NULL-Byte. Die korrekte Angabe von ln ist daher kritisch. (Die Anzahl Zeichen ln bezieht sich dabei auf die Anzahl Zeichen in der Quelle, nicht auf die Anzahl der ausgegebenen Zeichen.)

   Char32Reader


Diese Klasse liest Zeichen (vom Typ char32_t) aus einem Speicherbereich.

Constructor:
Char32Reader(const char32_t *a,int ln)

Factory Method:
Reader *ReaderInterface::createChar32Reader(const char32_t *a,int ln)

Wrapper Class:
Char32ReaderWrapper(const char32_t *a,int ln)

The static method ReaderInterface::createChar32Reader creates a new instance of class Char32Reader.

Parameters:
Type Name Direction Description
const char32_t *a[IN]Pointer auf den Speicherbereich der den einzulesenden Text enthält.
int lnDie maximale Anzahl Zeichen, die aus dem Speicherbereich a eingelesen werden sollen.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char32Reader zurück.

Remarks:
Der Reader liest bis zu ln Zeichen aus dem Speicherbereich ein. Das Einlesen stoppt nicht an einem NULL-Byte. Die korrekte Angabe von ln ist daher kritisch. (Die Anzahl Zeichen ln bezieht sich dabei auf die Anzahl Zeichen in der Quelle, nicht auf die Anzahl der ausgegebenen Zeichen.)

   WcsReader


Diese Klasse liest Zeichen (vom Typ wchar_t) aus einem Speicherbereich.

Constructor:
WcsReader(const wchar_t *a,int ln)

Factory Method:
Reader *ReaderInterface::createWcsReader(const wchar_t *a,int ln)

Wrapper Class:
WcsReaderWrapper(const wchar_t *a,int ln)

The static method ReaderInterface::createWcsReader creates a new instance of class WcsReader.

Parameters:
Type Name Direction Description
const wchar_t *a[IN]Pointer auf den Speicherbereich der den einzulesenden Text enthält.
int lnDie maximale Anzahl Zeichen, die aus dem Speicherbereich a eingelesen werden sollen.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse WcsReader zurück.

Remarks:
Der Reader liest bis zu ln Zeichen aus dem Speicherbereich ein. Das Einlesen stoppt nicht an einem NULL-Byte. Die korrekte Angabe von ln ist daher kritisch. (Die Anzahl Zeichen ln bezieht sich dabei auf die Anzahl Zeichen in der Quelle, nicht auf die Anzahl der ausgegebenen Zeichen.)

   FileReader (version 1)


Diese Klasse liest Zeichen (vom Typ char) aus einer Datei.

Constructor:
FileReader(FILE *f)

Factory Method:
Reader *ReaderInterface::createFileReader(FILE *f)

Wrapper Class:
FileReaderWrapper(FILE *f)

The static method ReaderInterface::createFileReader creates a new instance of class FileReader.

Parameters:
Type Name Direction Description
FILE *f[IN]Ein File-Handle einer bereits geöffneten Datei.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse FileReader zurück.

Remarks:
Das Programm sollte die geöffnete Datei mit fclose() wieder schließen. Die Freigabe des Readers schließt die Datei nicht.

   FileReader (version 2)


Diese Klasse liest Zeichen (vom Typ char) aus einer Datei.

Constructor:
FileReader(const char *filename)

Factory Method:
Reader *ReaderInterface::createFileReader(const char *filename)

Wrapper Class:
FileReaderWrapper(const char *filename)

The static method ReaderInterface::createFileReader creates a new instance of class FileReader.

Parameters:
Type Name Direction Description
const char *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse FileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Der Dateiname kann als ANSI oder UTF-8 codierter und null-terminierter String angegeben werden.

   FileReader (version 3) [WIN_ONLY]


Diese Klasse liest Zeichen (vom Typ char) aus einer Datei.

Constructor:
FileReader(const wchar_t *filename)

Factory Method:
Reader *ReaderInterface::createFileReader(const wchar_t *filename)

Wrapper Class:
FileReaderWrapper(const wchar_t *filename)

The static method ReaderInterface::createFileReader creates a new instance of class FileReader.

Parameters:
Type Name Direction Description
const wchar_t *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse FileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Diese Version des Konstruktors (bzw. des Wrappers oder der Factory Methode) steht nur unter Windows Betriebssystemen zur Verfügung. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.: #ifdef _WIN32 ... #endif.
Der Dateiname muss als Windows (wide-character) codierter und null-terminierter String angegeben werden.

   WcsFileReader (version 1)


Diese Klasse liest Zeichen (vom Typ wchar_t) aus einer Datei.

Constructor:
WcsFileReader(FILE *f)

Factory Method:
Reader *ReaderInterface::createWcsFileReader(FILE *f)

Wrapper Class:
WcsFileReaderWrapper(FILE *f)

The static method ReaderInterface::createWcsFileReader creates a new instance of class WcsFileReader.

Parameters:
Type Name Direction Description
FILE *f[IN]Ein File-Handle einer bereits geöffneten Datei.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse WcsFileReader zurück.

Remarks:
Das Programm sollte die geöffnete Datei mit fclose() wieder schließen. Die Freigabe des Readers schließt die Datei nicht.

   WcsFileReader (version 2)


Diese Klasse liest Zeichen (vom Typ wchar_t) aus einer Datei.

Constructor:
WcsFileReader(const char *filename)

Factory Method:
Reader *ReaderInterface::createWcsFileReader(const char *filename)

Wrapper Class:
WcsFileReaderWrapper(const char *filename)

The static method ReaderInterface::createWcsFileReader creates a new instance of class WcsFileReader.

Parameters:
Type Name Direction Description
const char *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse WcsFileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Der Dateiname kann als ANSI oder UTF-8 codierter und null-terminierter String angegeben werden.

   WcsFileReader (version 3) [WIN_ONLY]


Diese Klasse liest Zeichen (vom Typ wchar_t) aus einer Datei.

Constructor:
WcsFileReader(const wchar_t *filename)

Factory Method:
Reader *ReaderInterface::createWcsFileReader(const wchar_t *filename)

Wrapper Class:
WcsFileReaderWrapper(const wchar_t *filename)

The static method ReaderInterface::createWcsFileReader creates a new instance of class WcsFileReader.

Parameters:
Type Name Direction Description
const wchar_t *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse WcsFileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Diese Version des Konstruktors (bzw. des Wrappers oder der Factory Methode) steht nur unter Windows Betriebssystemen zur Verfügung. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.: #ifdef _WIN32 ... #endif.
Der Dateiname muss als Windows (wide-character) codierter und null-terminierter String angegeben werden.

   Char16FileReader (version 1)


Diese Klasse liest Zeichen (vom Typ char16_t) aus einer Datei.

Constructor:
Char16FileReader(FILE *f)

Factory Method:
Reader *ReaderInterface::createChar16FileReader(FILE *f)

Wrapper Class:
Char16FileReaderWrapper(FILE *f)

The static method ReaderInterface::createChar16FileReader creates a new instance of class Char16FileReader.

Parameters:
Type Name Direction Description
FILE *f[IN]Ein File-Handle einer bereits geöffneten Datei.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char16FileReader zurück.

Remarks:
Das Programm sollte die geöffnete Datei mit fclose() wieder schließen. Die Freigabe des Readers schließt die Datei nicht.

   Char16FileReader (version 2)


Diese Klasse liest Zeichen (vom Typ char16_t) aus einer Datei.

Constructor:
Char16FileReader(const char *filename)

Factory Method:
Reader *ReaderInterface::createChar16FileReader(const char *filename)

Wrapper Class:
Char16FileReaderWrapper(const char *filename)

The static method ReaderInterface::createChar16FileReader creates a new instance of class Char16FileReader.

Parameters:
Type Name Direction Description
const char *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char16FileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Der Dateiname kann als ANSI oder UTF-8 codierter und null-terminierter String angegeben werden.

   Char16FileReader (version 3) [WIN_ONLY]


Diese Klasse liest Zeichen (vom Typ char16_t) aus einer Datei.

Constructor:
Char16FileReader(const wchar_t *filename)

Factory Method:
Reader *ReaderInterface::createChar16FileReader(const wchar_t *filename)

Wrapper Class:
Char16FileReaderWrapper(const wchar_t *filename)

The static method ReaderInterface::createChar16FileReader creates a new instance of class Char16FileReader.

Parameters:
Type Name Direction Description
const wchar_t *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char16FileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Diese Version des Konstruktors (bzw. des Wrappers oder der Factory Methode) steht nur unter Windows Betriebssystemen zur Verfügung. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.: #ifdef _WIN32 ... #endif.
Der Dateiname muss als Windows (wide-character) codierter und null-terminierter String angegeben werden.

   Char32FileReader (version 1)


Diese Klasse liest Zeichen (vom Typ char32_t) aus einer Datei.

Constructor:
Char32FileReader(FILE *f)

Factory Method:
Reader *ReaderInterface::createChar32FileReader(FILE *f)

Wrapper Class:
Char32FileReaderWrapper(FILE *f)

The static method ReaderInterface::createChar32FileReader creates a new instance of class Char32FileReader.

Parameters:
Type Name Direction Description
FILE *f[IN]Ein File-Handle einer bereits geöffneten Datei.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char32FileReader zurück.

Remarks:
Das Programm sollte die geöffnete Datei mit fclose() wieder schließen. Die Freigabe des Readers schließt die Datei nicht.

   Char32FileReader (version 2)


Diese Klasse liest Zeichen (vom Typ char32_t) aus einer Datei.

Constructor:
Char32FileReader(const char *filename)

Factory Method:
Reader *ReaderInterface::createChar32FileReader(const char *filename)

Wrapper Class:
Char32FileReaderWrapper(const char *filename)

The static method ReaderInterface::createChar32FileReader creates a new instance of class Char32FileReader.

Parameters:
Type Name Direction Description
const char *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char32FileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Der Dateiname kann als ANSI oder UTF-8 codierter und null-terminierter String angegeben werden.

   Char32FileReader (version 3) [WIN_ONLY]


Diese Klasse liest Zeichen (vom Typ char32_t) aus einer Datei.

Constructor:
Char32FileReader(const wchar_t *filename)

Factory Method:
Reader *ReaderInterface::createChar32FileReader(const wchar_t *filename)

Wrapper Class:
Char32FileReaderWrapper(const wchar_t *filename)

The static method ReaderInterface::createChar32FileReader creates a new instance of class Char32FileReader.

Parameters:
Type Name Direction Description
const wchar_t *filename[IN]Der Name der Datei aus welcher gelesen werden soll. Der Name muss ein null-terminierter String sein und kann zusätzlich einen Pfad enthalten.

Return value:
Gibt einen Pointer auf die neu erzeugte Instanz der Klasse Char32FileReader zurück.

Remarks:
Die Datei wird automatisch geschlossen, sobald der Reader freigegeben wird.
Diese Version des Konstruktors (bzw. des Wrappers oder der Factory Methode) steht nur unter Windows Betriebssystemen zur Verfügung. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.: #ifdef _WIN32 ... #endif.
Der Dateiname muss als Windows (wide-character) codierter und null-terminierter String angegeben werden.


Members

   currcolumn


The column number of the current reading position. (conting of columns starts with 1)

Signature:
int currcolumn;

Setter- and getter-methods:
Use the methods get_currcolumn() and set_currcolumn(int) to get and set the value of this member variable.

   currline


The line number of the current reading position. (conting of lines starts with 1)

Signature:
int currline;

Setter- and getter-methods:
Use the methods get_currline() and set_currline(int) to get and set the value of this member variable.

   line_break_char


The standard line break character to return for line breaks.

Signature:
int line_break_char;

Setter- and getter-methods:
Use the methods get_line_break_char() and set_line_break_char(int) to get and set the value of this member variable.

   compatibility_mode


Gibt an, welcher Kompatibilitäts-Modus verwendet erden soll.

Geben Sie einen der folgenden Werte an.

READER_COMPMODE_OFF Schaltet den Comapitbility-Mode aus. Sowohl die Kombination [CR] [LF] als auch [LF] [CR] werden als jeweils nur ein Zeienumbruch interpretiert.
READER_COMPMODE_STD Dies ist der Standard-Modus (Voreinstellung). Die Kombination [CR] [LF] wird als ein Zeilenumbruch und die Kombination [LF] [CR] wird als zwei Zeienumbrüche interpretiert.
READER_COMPMODE_EXT Interpretiert alle [CR] und alle [LF] als einzelne Zeilenumbrüche.


Signature:
int compatibility_mode;

Setter- and getter-methods:
Use the methods get_compatibility_mode() and set_compatibility_mode(int) to get and set the value of this member variable.


Methods

   getLine


Gibt die Zeilennummer der Position des zuletzt eingelesenen Zeichens zurück.

Signature:
int getLine()

Return value:
Die Zeilennummer des zuletzt eingelesenen Zeichens. (Zählung beginnt mit 1.)

   getColumn


Gibt die Spaltennummer der Position des zuletzt eingelesenen Zeichens zurück.

Signature:
int getColumn()

Return value:
Die Spaltennummer des zuletzt eingelesenen Zeichens. (Zählung beginnt mit 1.)

   get


Reads the next character (either the next byte (char), the next two (char16_t) or four (char32_t) bytes, or the next sizeof(wchar_t) bytes, depending on the constructor). Different kinds of line-breaks are returned as a single '\n' character (or a different character set by set_line_break_char()).

Signature:
int get()

Return value:
The last character, that has been read. After reaching the end of the file (or the end of the buffer) the method returns -1.

Remarks:
Because of the converting of line-breaks, the number of returned characters may be less than the character count of the source text.
Every call of this method increments the reading position as given by the current line and column numbers. Use getCurrLine() and getCurrColumn() to determine this numbers.

   getChar


Reads the next character (either the next byte (char), the next two (char16_t) or four (char32_t) bytes, or the next sizeof(wchar_t) bytes, depending on the constructor) with no regard of line-endings. All characters (including '\r' and '\n') are returned, the same as they are read.

Signature:
int getChar()

Return value:
The last character, that has been read. After reaching the end of the file (or the end of the buffer) the method returns -1.

Remarks:
A call of this function will leave the current line and column numbers unchanged.

   getLastError


Returns the error code of the last occurred error.

Signature:
int getLastError()

Return value:
The error code of the last error, or 0 if no error occurred.

Remarks:
Macros for Error-Codes:
READER_ERROR_OPEN_FILEIf the specified file could not be opened.


   getLastErrorDetail


Returns the detail error code of the last occurred error.

Signature:
int getLastErrorDetail()

Return value:
A integer which specifies the reason of the error (s. remarks). If no error occurred,this function returns 0.

Remarks:
Meaning of Return-Values:
getLastError()getLastErrorDetail()
READER_ERROR_OPEN_FILEThe error code returned by fopen().


   resetLastError


Resets the error codes (which can be retrieved by getLastError() and getLastErrorDetail()) to 0.

Signature:
void resetLastError()

   getCurrLine


Returns the line number of the current reading position.

Signature:
int getCurrLine()

Return value:
The number of the line. (conting of lines starts with 1)

   getCurrColumn


Returns the column number of the current reading position.

Signature:
int getCurrColumn()

Return value:
The number of the column. (conting of columns starts with 1)

   setCurrLine


Sets the line number of the current reading position.

Signature:
void setCurrLine(int n)

Parameters:
Type Name Direction Description
int nThe line number, starting with 1.


Remarks:
This method only changes the value of the current line counter. It does NOT change the actual reading position.

   setCurrColumn


Sets the column number of the current reading position.

Signature:
void setCurrColumn(int n)

Parameters:
Type Name Direction Description
int nThe column number, starting with 1.


Remarks:
This method only changes the value of the current column counter. It does NOT change the actual reading position.


Copyright © 2017 - 2019 by Andreas Pollhammer