Contents
Inheritance:
Constructors:
Methods:
Dateien öffnen und schließen:
Das nächste Zeichen einlesen:
Eigenschaften abfragen:
Constructors
UniReader
Kann Textdateien zeichenweise einlesen. Unterstützte Dateiformate sind ASCII, UTF-8 (mit und ohne BOM), UTF-16 mit BOM (Big- oder Little-Endian) und UTF-32 mit BOM (Big- oder Little-Endian), sowie UTF-16BE, UTF-16LE, UTF-32BE und UTF-32LE.
Constructor:
UniReader()
Factory Method:
AbsUniReader *AbsUniReaderInterface::createUniReader()
Wrapper Class:
UniReaderWrapper()
The static method
AbsUniReaderInterface::createUniReader creates a new instance of class UniReader.
Return value:Returns an instance of
UniReader.
Methods
openfile (version 1)
Öffnet eine Datei.
Durch wiederholten Aufruf von
openfile() können mehrere Dateien gleichzeitig geöffnet werden. Das Einlesen von Zeichen erfolgt immer aus der zuletzt geöffneten Datei. Wird diese geschlossen, so wird aus der zuvor geöffneten Datei weiter gelesen.
Jede erfolgreich geöffnete Datei sollte durch Aufruf von
closefile() wieder geschlossen werden.
Das Dateiformat wird anhand des BOM (Byte-Order-Mark) Zeichens erkannt. Sofern kein BOM vorhanden ist, wird versucht die Datei als UTF-8 Datei einzulesen.
Signature:
int openfile(const char *filename)
Parameters:
| const char * | filename | [IN] | The path to a file to be opened (as a null-terminated ASCII/ANSI or UTF-8 string). |
Return value:Gibt 0 zurück, falls die Datei erfolgreich geöffnet werden konnte, sonst einen Wert ungleich 0.
Required code:

interface
AbsUniFileReader from module
reader (version 1 - 0 -- default: v01)
openfile (version 2)
Öffnet eine Datei.
Durch wiederholten Aufruf von
openfile() können mehrere Dateien gleichzeitig geöffnet werden. Das Einlesen von Zeichen erfolgt immer aus der zuletzt geöffneten Datei. Wird diese geschlossen, so wird aus der zuvor geöffneten Datei weiter gelesen.
Jede erfolgreich geöffnete Datei sollte durch Aufruf von
closefile() wieder geschlossen werden.
Das Dateiformat wird anhand von
format festgelegt.
Signature:
int openfile(const char *filename,int format)
Parameters:
| const char * | filename | [IN] | The path to a file to be opened (as a null-terminated ASCII/ANSI or UTF-8 string). |
| int | format | | The Unicode Encoding Format of the file.
Einer der folgenen Werte:
| Wert | Bedeutung |
| UNIREADER_FORMAT_UNDEFINED | Die Codierung wird anhand des BOM (Byte-Order-Mark) Zeichens erkannt. Falls kein BOM angegeben ist, wird versucht die Datei als UTF-8 Datei einzulesen. |
| UNIREADER_FORMAT_UTF8 | Die Datei wird als UTF-8 Datei eingelesen. Die Datei darf ein BOM Zeichen enthalten. |
| UNIREADER_FORMAT_UTF16 | Die Datei wird als UTF-16 Datei eingelesen. Die Byte-Reihenfolge wird anhand des BOM Zeichens bestimmt. Ist kein BOM vorhanden, so wird Big-Endian angenommen. |
| UNIREADER_FORMAT_UTF16BE | Die Datei wird als UTF-16BE (Big-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
| UNIREADER_FORMAT_UTF16LE | Die Datei wird als UTF-16LE (Little-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
| UNIREADER_FORMAT_UTF32 | Die Datei wird als UTF-32 Datei eingelesen. Die Byte-Reihenfolge wird anhand des BOM Zeichens bestimmt. Ist kein BOM vorhanden, so wird Big-Endian angenommen. |
| UNIREADER_FORMAT_UTF32BE | Die Datei wird als UTF-32BE (Big-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
| UNIREADER_FORMAT_UTF32LE | Die Datei wird als UTF-32LE (Little-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
|
Return value:Gibt 0 zurück, falls die Datei erfolgreich geöffnet werden konnte, sonst einen Wert ungleich 0.
Required code:

interface
AbsUniFileReader from module
reader (version 1 - 0 -- default: v01)
openfile (version 3)
[WIN_ONLY]
Öffnet eine Datei.
Durch wiederholten Aufruf von
openfile() können mehrere Dateien gleichzeitig geöffnet werden. Das Einlesen von Zeichen erfolgt immer aus der zuletzt geöffneten Datei. Wird diese geschlossen, so wird aus der zuvor geöffneten Datei weiter gelesen.
Jede erfolgreich geöffnete Datei sollte durch Aufruf von
closefile() wieder geschlossen werden.
Das Dateiformat wird anhand des BOM (Byte-Order-Mark) Zeichens erkannt. Sofern kein BOM vorhanden ist, wird versucht die Datei als UTF-8 Datei einzulesen.
Signature:
int openfile(const wchar_t *filename)
Parameters:
| const wchar_t * | filename | [IN] | The path to a file to be opened (as a null-terminated wide-character-string). |
Return value:Gibt 0 zurück, falls die Datei erfolgreich geöffnet werden konnte, sonst einen Wert ungleich 0.
Remarks:
Diese Methode steht nur unter Windows Betriebssystemen zur Verfügung. Es kann sein, dass die Methode unter anderen Betriebssystemen ebenfalls deklariert ist, die konkrete Implementierung fehlt aber in jedem Fall. Verwenden Sie diese Methode daher mit Vorsicht. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.:
#ifdef _WIN32 ... #endif.
Required code:

interface
AbsUniFileReader from module
reader (version 1 - 0 -- default: v01)
openfile (version 4)
[WIN_ONLY]
Öffnet eine Datei.
Durch wiederholten Aufruf von
openfile() können mehrere Dateien gleichzeitig geöffnet werden. Das Einlesen von Zeichen erfolgt immer aus der zuletzt geöffneten Datei. Wird diese geschlossen, so wird aus der zuvor geöffneten Datei weiter gelesen.
Jede erfolgreich geöffnete Datei sollte durch Aufruf von
closefile() wieder geschlossen werden.
Das Dateiformat wird anhand von
format festgelegt.
Signature:
int openfile(const wchar_t *filename,int format)
Parameters:
| const wchar_t * | filename | [IN] | The path to a file to be opened (as a null-terminated wide-character-string). |
| int | format | | The Unicode Encoding Format of the file.
Einer der folgenen Werte:
| Wert | Bedeutung |
| UNIREADER_FORMAT_UNDEFINED | Die Codierung wird anhand des BOM (Byte-Order-Mark) Zeichens erkannt. Falls kein BOM angegeben ist, wird versucht die Datei als UTF-8 Datei einzulesen. |
| UNIREADER_FORMAT_UTF8 | Die Datei wird als UTF-8 Datei eingelesen. Die Datei darf ein BOM Zeichen enthalten. |
| UNIREADER_FORMAT_UTF16 | Die Datei wird als UTF-16 Datei eingelesen. Die Byte-Reihenfolge wird anhand des BOM Zeichens bestimmt. Ist kein BOM vorhanden, so wird Big-Endian angenommen. |
| UNIREADER_FORMAT_UTF16BE | Die Datei wird als UTF-16BE (Big-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
| UNIREADER_FORMAT_UTF16LE | Die Datei wird als UTF-16LE (Little-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
| UNIREADER_FORMAT_UTF32 | Die Datei wird als UTF-32 Datei eingelesen. Die Byte-Reihenfolge wird anhand des BOM Zeichens bestimmt. Ist kein BOM vorhanden, so wird Big-Endian angenommen. |
| UNIREADER_FORMAT_UTF32BE | Die Datei wird als UTF-32BE (Big-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
| UNIREADER_FORMAT_UTF32LE | Die Datei wird als UTF-32LE (Little-Endian) Datei eingelesen. Die Datei darf kein BOM enthalten. |
|
Return value:Gibt 0 zurück, falls die Datei erfolgreich geöffnet werden konnte, sonst einen Wert ungleich 0.
Remarks:
Diese Methode steht nur unter Windows Betriebssystemen zur Verfügung. Es kann sein, dass die Methode unter anderen Betriebssystemen ebenfalls deklariert ist, die konkrete Implementierung fehlt aber in jedem Fall. Verwenden Sie diese Methode daher mit Vorsicht. Aufrufe sollten immer innerhalb eines entsprechenden Präprozessor-Blocks stehen: Z.B.:
#ifdef _WIN32 ... #endif.
Required code:

interface
AbsUniFileReader from module
reader (version 1 - 0 -- default: v01)
closefile
Schließt die zuletzt geöffnete Datei.
Signature:
int closefile()
Return value:Gibt 0 zurück falls die zuletzt geöffnete Datei geschlossen werden konnte, sonst 1.
Required code:

interface
AbsUniFileReader from module
reader (version 1 - 0 -- default: v01)
get
Liest das nächste Zeichen aus der zuletzt geöffneten (und noch nicht wieder geschlossenen) Datei.
Signature:
int get()
Return value:Das zuletzt eingelesene Zeichen (Wert des Unicode-Codepoints).
- Falls das Dateiende erreicht wurde, wird -1 zurückgegben.
- Falls keine Datei zum Einlesen geöffnet ist, wird ebenso -2 zurückgegeben.
- Wird ein ungültiges Zeichen eingelesen, so wird -3 zurückgegeben. Dass Einlesen stoppt in diesem Fall an der Stelle des ungültigen Zeichens. Weitere Aufrufe von
get() geben in der Folge ebenfalls -3 zurück.
Achtung. Die aktuelle Implementierung ist unvollständig. Nicht alle ungültigen Zeichen werden erkannt.
Required code:

method
Reader::get from module
reader (version 1 - 0 -- default: v01)

function
decode from module
utf8 (version 1 - 0 -- default: v01)

function
decode_BE from module
utf16 (version 1 - 0 -- default: v01)

function
decode_LE from module
utf16 (version 1 - 0 -- default: v01)
getCurrentFilename
Gibt den Dateinamen der zuletzt geöffneten (und noch nicht wieder geschlossenen) Datei zurück. (Nur implementiert falls der Dateiname als (char *) angegeben wurde. Sonst wird "" als Dateiname zurückgegeben.)
Signature:
const char *getCurrentFilename()
Return value:Dateiname (ggf. inkl. Pfad) als null-terminierter String in UTF-8 Codierung.
getCurrentRow
Gibt die Zeile der aktuellen Leseposition in der Datei zurück, die aktuell eingelesen wird.
Signature:
int getCurrentRow()
Return value:Nummer der aktuellen Zeile (wobei die Nummerierung mit 1 beginnt).
getCurrentColumn
Gibt die Spalte der aktuellen Leseposition in der Datei zurück, die aktuell eingelesen wird.
Signature:
int getCurrentColumn()
Return value:Nummer der aktuellen Spalte (wobei die Nummerierung mit 1 beginnt).
getCurrentFileFormat