예제 #1
0
 // Einträge auf Gültigkeit prüfen
 public void validateValues(DatenFelder d) {
   if (d.get(LFDNR).trim().equals(""))
     return; // überspringen, da leere Keys ohnehin nicht hinzugefügt werden
   d.set(LFDNR, EfaUtil.getLfdNr(d.get(LFDNR)));
   TMJ tmj = EfaUtil.correctDate(d.get(DATUM), 1, 1, 1970);
   d.set(DATUM, tmj.tag + "." + tmj.monat + "." + tmj.jahr);
   d.set(BOOTSKM, EfaUtil.zehntelInt2String(EfaUtil.zehntelString2Int(d.get(BOOTSKM))));
   d.set(MANNSCHKM, EfaUtil.zehntelInt2String(EfaUtil.zehntelString2Int(d.get(MANNSCHKM))));
 }
예제 #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;
  }