<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">// #######################################################################
// ### Einstellungen.java                                              ###
// ### Einlesen einer Einstellungensdatei                              ###
// ### Verantwortlich: Thomas Dreibholz, dreibh@exp-math.uni-essen.de  ###
// #######################################################################


package pm;


import java.io.*;
import java.sql.*;

import Liste;
import Datenobjekt;
import StringDaten;


// ****** Einstellungen **************************************************
class Einstellungen
{
   // *** Debug-Schalter *************************************************
   public final boolean debug = true;
   
   // *** Konstanten *****************************************************
   final public String eingabeDatei = "Einstellungen.dat";
   
   // *** interne Variablen **********************************************
   private Liste datenListe;
   
   
   // ###### Singleton-Pattern: Instanz erzeugen #########################
   static private Einstellungen instanz = new Einstellungen();
   static public Einstellungen getInstance() {
      return(instanz);
   }

   
   // ###### Wert abfragen ###############################################
   public String Wert(String name, String def) {
      try {
         return(datenListe.Suchen(name).Inhalt());
      } catch(NoSuchElementException e) {
         return(def);
      }
   }


   // ###### Wert abfragen ###############################################
   public int WertInteger(String name, int def) {
      try {
         return(datenListe.Suchen(name).InhaltInteger());
      } catch(NoSuchElementException e) {
         return(def);
      }
   }
                     
                     
   // ###### Konstruktor #################################################                     
   private Einstellungen() {
      datenListe = new Liste();
      
      // Einstellungen aus Datei lesen
      try {
         if(debug) System.out.println("*** Lese Einstellungen *************");
         BufferedReader in = new BufferedReader(new FileReader(eingabeDatei));
         try {
            int n = 1;
            while(in.ready()) {
               // Zeile einlesen
               String zeile = in.readLine().trim(); 
               
               // Zeile auswerten
               try {
                  if((zeile.length() &gt; 0) &amp;&amp; (zeile.charAt(0) != '#')) {
                     int wertIndex = zeile.indexOf("=");
                     String wert = zeile.substring(wertIndex + 1).trim();
                     String name = zeile.substring(0,wertIndex - 1).trim();
                     if(debug) System.out.println("&lt;" + name + "&gt; = \"" + wert + "\"");
                     datenListe.Anfuegen(new StringDaten(name,wert));
                  }                  
               } catch(Exception e) {
                  System.out.println("Formatfehler in Einstellungs-Datei, Zeile " + n + ": " + e);
               }
               n++;
            }           
         } catch(Exception e) {
            System.err.println("Fehler beim Einlesen der Einstellungs-Datei: " + e);
         }   
         if(debug) System.out.println("************************************");
      } catch(Exception e) {
         System.err.println("Einstellungs-Datei \"" + eingabeDatei + "\" nicht gefunden: " + e);         
      }
   }
}
      </pre></body></html>