de.jsystems.tools.ini
Class IniFileReader

java.lang.Object
  extended byde.jsystems.tools.ini.IniFileReader

public class IniFileReader
extends Object

Liest Ini-Dateien ein und trennt die einzelnen Parameter nach Sektionen.

Dabei wird der Inhalt der Datei in einer Pseudotabelle abgelegt mit der folgenden Struktur:



+--[SECTION1]
| |
| +KEY1=VALUE1
| +KEY2=VALUE2
| +KEY3=VALUE3
|
+--[SECTION2]
| |
| +KEY1=VALUE1
| +KEY2=VALUE2
| +KEY3=VALUE3
|
usw.


Kommentare(=Zeilen, die mit '#' oder ';' anfangen) werden entweder zu der folgenden Section oder zum folgenden KEY/VALUE-Paar gespeichert. Diese Kommentare können auch wieder ausgelesen werden, da die Sections bzw. die Werte in Item-Klassen gespeichert werden. Ein Kommentar darf allerdings nicht am Ende einer Zeile stehen, da er hier als Teil des Wertes zu einem Parameter verstanden wuerde.
Einer erzeugten Instanz des IniFileReader kann eine neue zu lesende Datei übergeben werden. In diesem Falle wird der alte Inhalt aus dem Objekt gelöscht. Eventuell vorgenommene Änderungen in der Struktur werden nicht gespeichert. Es sollte also vorher die Methode save() aufgerufen werden, bevor die Methode setFile(...) aufgerufen wird.
Falls der als String übergebene Datenamen nicht existiert, wird eine entsprechende Datei angelegt. Da diese leer ist, können natürlich keine Werte ausgelesen werden, diese müssen erst hinzugefügt werden.
Der IniFileReader verfügt über drei verschiedene Modi:

  • RESTRICTIVE - Wenn Parameter mit addParam(...) hinzugefügt werden, muß die zugehörige Section existieren. Wenn Parameter mit getParamValue(...) gelesen werden, muß die Section oder der Parameter existieren.

  • NONRESTRICTIVE - Wenn Parameter mit addParam(...) hinzugefügt werden und die zugehörige Section nicht existiert, dann wird die Section angelegt. Wenn Parameter mit getParamValue(...) gelesen werden und die Section oder der Parameter nicht existieren, dann werden sie angelegt.

  • READONLY - Die geöffnete und gelesene INI-Datei kann über die Methode save() nicht gespeichert werden. Das ist nur über die Methode save(java.io.File) oder save(String) moeglich. Hier muss dann auf alle Fälle ein anderer Dateiname angegeben werden als der Name unter dem die Datei geoeffnet wurde.
    In den Fällen, das Parameter ausgelesen werden und dabei ein DEFAULT-Wert mit übergeben wurde, wird dieser auf alle Fälle zurückgegeben, wenn es diesen Parameter nicht gegeben hat und im Modi NONRESTRICTIVE wird die Section und der Parameter ggf. angelegt. Als Defaultmodi ist NONRESTRICTIVE eingestellt. Der Modi wird über den Konstruktor eingestellt und kann nachträglich nicht geändert werden.

    Mit der Klasse kann erst dann gearbeitet werden wenn eine Datei eingelesen wurde. Dazu muss diese Datei gesetzt worden sein. Das geschieht entweder beim erzeugen der Klasse ueber den Konstruktor oder spaeter ueber die Methode setFile(...). Solange noch keine Datei eingelesen wurde loest jede Methode, die Daten in der INI-Datei aendert, eine IllegalStateException aus.

    Die Methoden sind nicht Thread-Save!

    Version:
    1.0
    Author:
    Jens Homm

    Field Summary
    static int NONRESTRICTIVE
              Parameter und Sectionen können auch beim lesen angelegt werden.
    static int READONLY
              Die Datei kann nicht unter dem gleichen Namen gespeichert werden.
    static int RESTRICTIVE
              Es wird nur gelesen was es gibt.
     
    Constructor Summary
    IniFileReader()
              Initialisiert die Klasse.
    IniFileReader(File file)
              Initialisiert die Klasse mit der angegebenen Datei.
    IniFileReader(File file, int modus)
              Initialisiert die Klasse mit der angegebenen Datei.
    IniFileReader(String filename)
              Initialisiert die Klasse mit der angegebenen Datei.
    IniFileReader(String filename, int modus)
              Initialisiert die Klasse mit der angegebenen Datei.
     
    Method Summary
     void addParam(String section, String param, String value)
              Fügt zu der angegebenen Section einen neuen Parameter mit dem angegebenen Wert hinzu.
     void addParam(String section, String param, String value, StringBuffer comment)
              Fügt zu der angegebenen Section einen neuen Parameter mit dem angegebenen Wert und dem angegebenen Kommentar hinzu.
     void addSection(String section)
              Fügt der Datei eine neue Section hinzu.
     void addSection(String section, StringBuffer comment)
              Fügt der Datei eine neue Section hinzu.
     boolean existParam(String section, String param)
              Prüft, ob es in einer Section mit dem übergebenen Namen einen Parameter mit dem übergebenen Namen gibt.
     boolean existSection(String sectionName)
              Prüft, ob es eine Section mit dem übergebenen Namen gibt.
     int getModus()
              Gibt den Modus des IniFileReader zurück(RESTRICTIVE, NONRESTRICTIVE, READONLY).
     StringBuffer getParamComment(String section, String param)
              Gibt den Kommentar zum spezifizierten Parameter zurück.
     Iterator getParamNames(String section)
              Gibt alle Parameter zurück die in der spezifizierten Section vorhanden sind.
     String getParamValue(String section, String param)
              Ließt einen Parameter aus der spezifizierten Sektion aus.
     String getParamValue(String section, String param, String defaultValue)
              Ließt einen Parameter aus der spezifizierten Sektion aus.
     StringBuffer getSectionComment(String section)
              Gibt den Kommentar zur spezifizierten Section zurück.
     Iterator getSectionNames()
              Gibt die Namen aller vorhandenen Sektionen zurück.
    protected  void readFile()
              Ließt die Datei ein und speichert die einzelnen Parameter unter ihrer zugehörigen Sektion.
     void removeParam(String section, String param)
              Löscht den angegebenen Parameter aus der angegebenen Section.
     void removeSection(String sectionName)
              Löscht die angegebene Section aus der Inidatei.
     void save()
              Speichert die gelesene Datei wieder unter dem gleichen Namen mit allen Parametern.
     void save(File file)
              Speichert die INI-Datei in der uebergebenen Datei.
     void save(String filename)
              Speichert die INI-Datei unter dem uegergebenen Namen ab.
     void setFile(File file)
              Ließt die angegebene Datei ein.
     void setFile(File file, int modus)
              Ließt die angegebene Datei ein.
     void setFile(String filename)
              Ließt die angegebene Datei ein.
     void setFile(String filename, int modus)
              Ließt die angegebene Datei ein.
     void setParamComment(String section, String param, StringBuffer comment)
              Setzt den Kommentar zum spezifizierten Parameter.
     void setParamValue(String section, String param, String value)
              Ändert den Wert des angegebenen Parameters in der angegebenen Section.
     void setSectionComment(String section, StringBuffer comment)
              Setzt den Kommentar zur spezifizierten Section.
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Field Detail

    RESTRICTIVE

    public static final int RESTRICTIVE
    Es wird nur gelesen was es gibt.

    See Also:
    Constant Field Values

    NONRESTRICTIVE

    public static final int NONRESTRICTIVE
    Parameter und Sectionen können auch beim lesen angelegt werden.

    See Also:
    Constant Field Values

    READONLY

    public static final int READONLY
    Die Datei kann nicht unter dem gleichen Namen gespeichert werden.

    See Also:
    Constant Field Values
    Constructor Detail

    IniFileReader

    public IniFileReader(String filename)
                  throws IOException,
                         IniFileFormatException
    Initialisiert die Klasse mit der angegebenen Datei. Dabei wird die komplette iniDatei gelesen und entsprechend ihrer Unterteilung gespeichert. Falls es die Datei nicht gibt wird sie angelegt. Wenn als Dateiname NULL oder ein Leerstring übergeben wird, wird eine IllegalArgumentException ausgelöst.

    Parameters:
    filename - Der Name der zu lesenden Inidatei inklusive kompletten Pfad.
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    IniFileReader

    public IniFileReader(String filename,
                         int modus)
                  throws IOException,
                         IniFileFormatException
    Initialisiert die Klasse mit der angegebenen Datei. Dabei wird die komplette iniDatei gelesen und entsprechend ihrer Unterteilung gespeichert. Falls es die Datei nicht gibt wird sie angelegt. Wenn als Dateiname NULL oder ein Leerstring übergeben wird, wird eine IllegalArgumentException ausgelöst.

    Parameters:
    filename - Der Name der zu lesenden Inidatei inklusive kompletten Pfad.
    modus - Der Modus für den IniFile Reader(RESTRICTIVE oder NONRESTRICTIVE).
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    IniFileReader

    public IniFileReader(File file)
                  throws IOException,
                         IniFileFormatException
    Initialisiert die Klasse mit der angegebenen Datei. Dabei wird die komplette iniDatei gelesen und entsprechend ihrer Unterteilung gespeichert. Falls es die Datei nicht gibt wird sie angelegt.

    Parameters:
    file - Ein Fileobjekt, das die zu lesende Inidatei darstellt.
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    IniFileReader

    public IniFileReader(File file,
                         int modus)
                  throws IOException,
                         IniFileFormatException
    Initialisiert die Klasse mit der angegebenen Datei. Dabei wird die komplette iniDatei gelesen und entsprechend ihrer Unterteilung gespeichert. Falls es die Datei nicht gibt wird sie angelegt.

    Parameters:
    file - Ein Fileobjekt, das die zu lesende Inidatei darstellt.
    modus - Der Modus für den IniFile Reader(RESTRICTIVE oder NONRESTRICTIVE).
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    IniFileReader

    public IniFileReader()
    Initialisiert die Klasse. Hier wird noch keine Datei eingelesen. Das muß später über die Methode setFile(...) geschehen. Solange die Datei nicht gelesen ist können keine Parameter ausgelesen werden. Der Modus wird in diesem Falle über setFile(...) gesetzt.

    Method Detail

    setFile

    public void setFile(String filename)
                 throws IOException,
                        IniFileFormatException
    Ließt die angegebene Datei ein. Der Modus wird hier auf NONRESTRICTIVE eingestellt. Falls es die Datei nicht gibt wird sie angelegt. Wenn als Dateiname NULL oder ein Leerstring übergeben wird, wird eine IllegalArgumentException ausgelöst.

    Parameters:
    filename - Der Name der einzulesenden Datei inklusive Pfad.
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    setFile

    public void setFile(String filename,
                        int modus)
                 throws IOException,
                        IniFileFormatException
    Ließt die angegebene Datei ein. Falls es die Datei nicht gibt wird sie angelegt. Wenn als Dateiname NULL oder ein Leerstring übergeben wird, wird eine IllegalArgumentException ausgelöst.

    Parameters:
    filename - Der Name der einzulesenden Datei inklusive Pfad.
    modus - Der Modus für den IniFile Reader(RESTRICTIVE, NONRESTRICTIVE, READONLY).
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    setFile

    public void setFile(File file)
                 throws IOException,
                        IniFileFormatException
    Ließt die angegebene Datei ein. Der Modus wird hier auf NONRESTRICTIVE eingestellt. Falls es die Datei nicht gibt wird sie angelegt.

    Parameters:
    file - Ein File-Objekt, das die einzulesende Datei repräsentiert.
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    setFile

    public void setFile(File file,
                        int modus)
                 throws IOException,
                        IniFileFormatException
    Ließt die angegebene Datei ein. Falls es die Datei nicht gibt wird sie angelegt. In diesem Falle ist der Modus immer NONRESTRICTIVE.

    Parameters:
    file - Ein File-Objekt, das die einzulesende Datei repräsentiert.
    modus - Der Modus für den IniFile Reader(RESTRICTIVE, NONRESTRICTIVE, READONLY).
    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    getModus

    public int getModus()
    Gibt den Modus des IniFileReader zurück(RESTRICTIVE, NONRESTRICTIVE, READONLY).

    Returns:
    Der Modus, in dem sich der INIFileReader befindet.

    readFile

    protected void readFile()
                     throws IOException,
                            IniFileFormatException
    Ließt die Datei ein und speichert die einzelnen Parameter unter ihrer zugehörigen Sektion. Falls über setFile(String) eine neue Datei angegeben wurde, wird der Inhalt der vorher gelesenen Datei gelöscht ohne das die Änderungen gespeichert werden.

    Throws:
    IOException - Wenn beim einlesen der Datei ein Fehler auftritt.
    IniFileFormatException - Wenn das Format der einzulesenden Datei nicht korrekt ist.

    save

    public void save(String filename)
              throws IOException,
                     ReadOnlySaveException
    Speichert die INI-Datei unter dem uegergebenen Namen ab. Im READONLY-Modus wird eine ReadOnlySaveException ausgeloest, wenn versucht wird unter dem ursprünglichen Namen zu speichern.

    Parameters:
    filename - Der Name unter dem die INI-Datei gespeichert werden soll.
    Throws:
    IOException - Wenn ein Fehler beim speichern auftritt.
    ReadOnlySaveException - Wenn versucht wird unter dem ursprünglichen Namen zu speichern.

    save

    public void save(File file)
              throws IOException,
                     ReadOnlySaveException
    Speichert die INI-Datei in der uebergebenen Datei.

    Parameters:
    file - Die Datei in der die INI-Datei gespeichert werden soll.
    Throws:
    IOException - Wenn ein Fehler beim speichern auftritt.
    ReadOnlySaveException - Wenn versucht wird unter dem ursprünglichen Namen zu speichern.

    save

    public void save()
              throws IOException
    Speichert die gelesene Datei wieder unter dem gleichen Namen mit allen Parametern. Falls diese MEthode im READONLY-Modus aufgerufen wurde, wird eine IllegalStateException ausgeloest.

    Throws:
    IOException - Wenn beim speichern ein Fehler auftritt.

    getParamValue

    public String getParamValue(String section,
                                String param)
    Ließt einen Parameter aus der spezifizierten Sektion aus. Je nach Modus wird bei fehlender Section oder Param NULL(Modus RESTICTIVE) oder ein Leerstring (Modus NONRESTRICTIVE) zurückgegeben. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Die Section, aus der der Parameter gelesen werden soll.
    param - Der Parameter, dessen Wert gelesen werden soll.
    Returns:
    Ein String mit dem Wert.

    getParamValue

    public String getParamValue(String section,
                                String param,
                                String defaultValue)
    Ließt einen Parameter aus der spezifizierten Sektion aus. Falls es die Sektion oder den Parameter nicht gibt, wird der übergebene Defaultwert zurückgegeben, außer der Modus steht auf RESTRICTIVE. In diesem Falle wird NULL zurückgegeben. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Die Section, aus der der Parameter gelesen werden soll.
    param - Der Parameter, dessen Wert gelesen werden soll.
    defaultValue - Der Defaultwert.
    Returns:
    Ein String mit dem Wert.

    setParamComment

    public void setParamComment(String section,
                                String param,
                                StringBuffer comment)
    Setzt den Kommentar zum spezifizierten Parameter. Ein evtl. bestehender Kommentar wird dabei überschrieben. Falls es die Section oder den Parameter nicht gibt, passiert nichts. Es wird kein Eintrag vorgenommen, egal welcher Modus eingestellt ist. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    param - Der Name des Parameters.
    Returns:
    Ein StringBuffer mit dem Kommentar.

    getParamComment

    public StringBuffer getParamComment(String section,
                                        String param)
    Gibt den Kommentar zum spezifizierten Parameter zurück. Falls es keinen Kommentar gibt wird ein Leerstring zurückgegeben. Falls es den Parameter oder sie Sektion nicht gibt, wird NULL zurückgegeben. Es wird kein Eintrag vorgenommen, egal welcher Modus eingestellt ist. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    param - Der Name des Parameters.
    Returns:
    Ein StringBuffer mit dem Parameterkommentar.

    getSectionComment

    public StringBuffer getSectionComment(String section)
    Gibt den Kommentar zur spezifizierten Section zurück. Falls es keinen Kommentar gibt wird ein Leerstring zurückgegeben. Falls es die Section nicht gibt, wird NULL zurückgegeben. Es wird kein Eintrag vorgenommen, egal welcher Modus eingestellt ist. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    Returns:
    Ein StringBuffer mit dem Kommentar.

    setSectionComment

    public void setSectionComment(String section,
                                  StringBuffer comment)
    Setzt den Kommentar zur spezifizierten Section. Ein evtl. bestehender Kommentar wird dabei überschrieben. Falls es die Section nicht gibt passiert nichts. Es wird kein Eintrag vorgenommen, egal welcher Modus eingestellt ist. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    comment - Der neue Kommentar zur Section.

    getSectionNames

    public Iterator getSectionNames()
    Gibt die Namen aller vorhandenen Sektionen zurück. Dabei wird die Reihenfolge beibehalten in der die Sektionen gelesen wurden. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Returns:
    Ein Iterator mit den Namen aller Sectionen.

    getParamNames

    public Iterator getParamNames(String section)
    Gibt alle Parameter zurück die in der spezifizierten Section vorhanden sind. Dabei wird die Reihenfolge beibehalten mit der die einzelnen Parameter hinzugefügt wurden. Falls es die Section nicht gibt wird NULL zurückgegeben. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Sektion.
    Returns:
    Ein Iterator mit den Namen aller Parameter der spezifizierten Section.

    addSection

    public void addSection(String section)
    Fügt der Datei eine neue Section hinzu. Falls es diese Section schon gibt passiert nichts. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der neuen Section.

    addSection

    public void addSection(String section,
                           StringBuffer comment)
    Fügt der Datei eine neue Section hinzu. Falls es diese Section schon gibt passiert nichts. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der neuen Section.
    comment - Der Kommentar zur Section.

    addParam

    public void addParam(String section,
                         String param,
                         String value)
    Fügt zu der angegebenen Section einen neuen Parameter mit dem angegebenen Wert hinzu. Falls dieser Parameter schon existiert passiert nichts. Falls die Section noch nicht vorhanden ist, wird im Modus RESTRICTIVE nichts angelegt und im Modus NONRESTRICTIVE wird die Section und der Parameter angelegt. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    param - Der Name des Parameters.
    value - Der Wert des Parameters.

    addParam

    public void addParam(String section,
                         String param,
                         String value,
                         StringBuffer comment)
    Fügt zu der angegebenen Section einen neuen Parameter mit dem angegebenen Wert und dem angegebenen Kommentar hinzu. Falls dieser Parameter schon existiert passiert nichts. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    param - Der Name des Parameters.
    value - Der Wert des Parameters.
    comment - Der Kommentar zum Parameter.

    setParamValue

    public void setParamValue(String section,
                              String param,
                              String value)
    Ändert den Wert des angegebenen Parameters in der angegebenen Section. Falls es den Parameter nicht gibt, wird er im Modus NONRESTRICTIVE angelegt, ansonsten passiert nichts. Falls der Wert vorhanden ist wird er überschrieben. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    param - Der Name des Parameters.
    value - Der Wert des Parameters.

    removeSection

    public void removeSection(String sectionName)
    Löscht die angegebene Section aus der Inidatei. Dabei gehen alle Parameter verloren. Falls es die angegebene Section nicht gibt passiert nichts. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    sectionName - Der Name der zu löschenden Section.

    removeParam

    public void removeParam(String section,
                            String param)
    Löscht den angegebenen Parameter aus der angegebenen Section. Falls es die Section oder den Parameter nicht gibt passiert nichts. Wurde noch keine Datei eingelesen(Im Konstruktor gesetzt oder hinterher ueber eine der setFile(...)-Methoden), so wird eine IllegalStateException ausgeloest.

    Parameters:
    section - Der Name der Section.
    param - Der Name des zu löschenden Parameters.

    existSection

    public boolean existSection(String sectionName)
    Prüft, ob es eine Section mit dem übergebenen Namen gibt.

    Returns:
    true, wenn es die Section unter diesem Namen gibt, ansonsten false.

    existParam

    public boolean existParam(String section,
                              String param)
    Prüft, ob es in einer Section mit dem übergebenen Namen einen Parameter mit dem übergebenen Namen gibt. Falls es schon die Section nicht gibt, wird false zurückgegeben.

    Returns:
    true, wenn es in der angegebenen Section einen Parameter mit dem angegebenen Namen gibt, ansonsten false.