Beispiel #1
0
  // Einstellungen aus dem Fahrtenbuch auslesen
  public boolean readEinstellungen() {
    String s;
    fbDaten.bootDatei = "boote.efbb";
    fbDaten.mitgliederDatei = "mitglieder.efbm";
    fbDaten.zieleDatei = "ziele.efbz";
    fbDaten.statistikDatei = "statistik.efbs";
    try {
      while ((s = freadLine()) != null && !s.startsWith("##ENDE_KONFIG")) {
        s = s.trim();
        if (s.startsWith("BOOTE=")) fbDaten.bootDatei = s.substring(6, s.length());
        if (s.startsWith("MITGLIEDER=")) fbDaten.mitgliederDatei = s.substring(11, s.length());
        if (s.startsWith("ZIELE=")) fbDaten.zieleDatei = s.substring(6, s.length());
        if (s.startsWith("STATISTIK=")) fbDaten.statistikDatei = s.substring(10, s.length());
        if (s.startsWith("VORHERIGESFB=")) prevFb = s.substring(13, s.length());
        if (s.startsWith("NAECHSTESFB=")) nextFb = s.substring(12, s.length());
        if (s.startsWith("NAMENSANGABEN="))
          fbDaten.erstVorname = s.substring(14, s.length()).equals("VORNACH");
        if (s.startsWith("STATUS1=")) { // aus Kompatibilität zu FBs von vor 090
          String t = s.substring(8, s.length());
          if (!t.endsWith(
              ","
                  + Daten.efaTypes.getValue(
                      EfaTypes.CATEGORY_STATUS, EfaTypes.TYPE_STATUS_GUEST))) {
            t =
                t
                    + ","
                    + Daten.efaTypes.getValue(EfaTypes.CATEGORY_STATUS, EfaTypes.TYPE_STATUS_GUEST);
          }
          fbDaten.status = EfaUtil.statusList2Arr(t);
        }
        if (s.startsWith("STATUS=")) {
          String t = s.substring(7, s.length());
          fbDaten.status = EfaUtil.statusList2Arr(t);
        }
        if (s.startsWith("ANZMITGLIEDER=")) {
          String t = s.substring(14, s.length());
          fbDaten.anzMitglieder = EfaUtil.string2int(t, 0);
        }

        if (s.startsWith("MEHRTAGESFAHRT=")) {
          String t = s.substring(15, s.length());
          DatenFelder d = new DatenFelder(6, t);
          Mehrtagesfahrt m =
              new Mehrtagesfahrt(
                  d.get(0),
                  d.get(1),
                  d.get(2),
                  EfaUtil.string2int(d.get(3), 1),
                  d.get(4),
                  d.get(5).equals("+"));
          mehrtagesfahrten.put(m.name, m);
        }
      }
    } catch (IOException e) {
      errReadingFile(dat, e.getMessage());
      return false;
    }
    return true;
  }
Beispiel #2
0
  // Dateiformat überprüfen, ggf. konvertieren
  public boolean checkFileFormat() {
    String s;
    try {
      s = freadLine();
      if (s == null || !s.trim().startsWith(kennung)) {

        // KONVERTIEREN: 135 -> 190
        if (s != null && s.trim().startsWith(KENNUNG135)) {
          // @efa1 if (Daten.backup != null) Daten.backup.create(dat,Efa1Backup.CONV,"135");
          iniList(this.dat, 36, 1, true); // Rahmenbedingungen von v1.9.0 schaffen

          if (!readEinstellungen()) return false;
          try {
            while ((s = freadLine()) != null) {
              s = s.trim();
              if (s.equals("") || s.startsWith("#")) continue; // Kommentare ignorieren
              DatenFelder d = constructFields(s);
              String fa = d.get(FAHRTART);
              if (fa.length() == 0) {
                fa = EfaTypes.TYPE_SESSION_NORMAL;
              } else {
                fa = Daten.efaTypes.getTypeForValue(EfaTypes.CATEGORY_SESSION, d.get(FAHRTART));
                if (fa != null && fa.equals(EfaTypes.TYPE_SESSION_TOUR)) {
                  // Bugfix: Als Fahrtart war "Mehrtagesfahrt" eingetragen; dies ist in efa2
                  // ein vorbelegter Begriff. Wenn wir das jetzt zu "TOUR" ändern, geht der
                  // Name der Mehrtagesfahrt verloren, und damit die Metadaten.
                  // Statt dessen müssen wir ein "TOUR:Mehrtagesfahrt" daraus machen!
                  fa = EfaTypes.TYPE_SESSION_TOUR + ":" + d.get(FAHRTART);
                }
                if (fa == null
                    && Daten.efaTypes.isConfigured(
                        EfaTypes.CATEGORY_SESSION, EfaTypes.TYPE_SESSION_TOUR)) {
                  if (d.get(FAHRTART).startsWith("Mehrtagesfahrt: konfigurieren!!")) {
                    fa =
                        CONFIGURE_MTOUR
                            + d.get(FAHRTART).substring("Mehrtagesfahrt: konfigurieren!!".length());
                  } else {
                    fa = EfaTypes.TYPE_SESSION_TOUR + ":" + d.get(FAHRTART);
                  }
                }
              }
              if (fa == null) {
                fa = EfaTypes.TYPE_SESSION_NORMAL;
                /* // @efa1
                Logger.log(Logger.ERROR, Logger.MSG_CSVFILE_ERRORCONVERTING,
                        getFileName() + ": " +
                        International.getMessage("Fehler beim Konvertieren von Eintrag '{key}'!",constructKey(d)) + " " +
                        International.getMessage("Unbekannte Eigenschaft '{original_property}' korrigiert zu '{new_property}'.",
                        d.get(FAHRTART), Daten.efaTypes.getValue(EfaTypes.CATEGORY_SESSION, fa)));
                 */
              }
              d.set(FAHRTART, fa);
              add(d);
            }

          } catch (IOException e) {
            errReadingFile(dat, e.getMessage());
            return false;
          }
          kennung = KENNUNG190;
          if (closeFile()) {
            infSuccessfullyConverted(dat, kennung);
            s = kennung;
          } else errConvertingFile(dat, kennung);
        }

        // FERTIG MIT KONVERTIEREN
        if (s == null || !s.trim().startsWith(KENNUNG190)) {
          errInvalidFormat(dat, EfaUtil.trimto(s, 20));
          fclose(false);
          return true;
        }
      }
    } catch (IOException e) {
      errReadingFile(dat, e.getMessage());
      return false;
    }
    return true;
  }