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:
Einlesen von wchar_t Zeichen aus einer Datei:
Einlesen von char16_t Zeichen aus einer Datei:
Einlesen von char32_t Zeichen aus einer Datei:
Members:
Methods:
Reading the next character:
Error handling:
Current line and current column:
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:
| const char * | a | [IN] | Pointer auf den Speicherbereich der den einzulesenden Text enthält. |
| int | ln | | Die 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:
| const char16_t * | a | [IN] | Pointer auf den Speicherbereich der den einzulesenden Text enthält. |
| int | ln | | Die 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:
| const char32_t * | a | [IN] | Pointer auf den Speicherbereich der den einzulesenden Text enthält. |
| int | ln | | Die 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:
| const wchar_t * | a | [IN] | Pointer auf den Speicherbereich der den einzulesenden Text enthält. |
| int | ln | | Die 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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_FILE | If 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_FILE | The 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:
| int | n | | The 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:
| int | n | | The 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.