[Schmitzm-commits] r1081 - in branches/2.2.x/src/schmitzm: lang lang/tree swing/resource/locales

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Oct 7 23:31:09 CEST 2010


Author: mojays
Date: 2010-10-07 23:31:08 +0200 (Thu, 07 Oct 2010)
New Revision: 1081

Modified:
   branches/2.2.x/src/schmitzm/lang/LangUtil.java
   branches/2.2.x/src/schmitzm/lang/tree/OperationTree.java
   branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java
   branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties
   branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties
Log:
Erweiterung OperationTree und OperationTreeParser

Modified: branches/2.2.x/src/schmitzm/lang/LangUtil.java
===================================================================
--- branches/2.2.x/src/schmitzm/lang/LangUtil.java	2010-10-07 21:30:45 UTC (rev 1080)
+++ branches/2.2.x/src/schmitzm/lang/LangUtil.java	2010-10-07 21:31:08 UTC (rev 1081)
@@ -56,7 +56,17 @@
  * @version 1.0
  */
 public class LangUtil {
-
+    /** Eine Sekunde in Millisekunden. */
+    public static final long SEC_MILLIS = 1000;
+    /** Eine Minute in Millisekunden. */
+    public static final long MIN_MILLIS = 60 * SEC_MILLIS;
+    /** Eine Stunde in Millisekunden. */
+    public static final long HOUR_MILLIS = 60 * MIN_MILLIS; 
+    /** Ein Tag in Millisekunden. */
+    public static final long DAY_MILLIS = 24 * HOUR_MILLIS; 
+    /** Eine Woche in Millisekunden. */
+    public static final long WEEK_MILLIS = 7 * DAY_MILLIS; 
+  
 	/**
 	 * {@link ResourceProvider}, der die Lokalisation fuer Komponenten des
 	 * Package {@code schmitzm.lang} zur Verfuegung stellt. Diese sind in

Modified: branches/2.2.x/src/schmitzm/lang/tree/OperationTree.java
===================================================================
--- branches/2.2.x/src/schmitzm/lang/tree/OperationTree.java	2010-10-07 21:30:45 UTC (rev 1080)
+++ branches/2.2.x/src/schmitzm/lang/tree/OperationTree.java	2010-10-07 21:31:08 UTC (rev 1081)
@@ -30,6 +30,7 @@
 package schmitzm.lang.tree;
 
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Random;
 import java.util.regex.Pattern;
@@ -64,8 +65,10 @@
  *         <li>Test auf regulaeren Ausdruck: {@code "regex(expression,regular expr)"}</li>
  *         <li>n-tes Ergebnis eines {@linkplain String#split(String) String-Splits} ueber regulaeren Ausdruck: {@code "split(expression,regular expr,n)"}</li>
  *         <li>String-Ersetzung: {@code "replAll(expression,pattern expr,repl expr)"}</li>
- *         <li>Umwandung eines Datums-String in Milli-Sekunden: {@code millis(string expr, format string expr)}
- *         <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code dateStr(num expr, format string expr)}
+ *         <li>Umwandung eines Datums-String in Milli-Sekunden: {@code str2millis(string expr, format string expr)}
+ *         <li>Umwandung eines Datums in Milli-Sekunden: {@code date2millis(year, month, day)}
+ *         <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code millis2Str(millis, format string expr)}
+ *         <li>Umwandung eines Datums in einen Datums-String: {@code date2Str(year, month, day, format string expr)}
  *       </ul></li>
  *   <li>{@link UnaryOperatorNode}: Innere Knoten, die fuer einen 1-stelligen
  *       Operator auf dem <i>linken</i> Sohn stehen:
@@ -96,6 +99,8 @@
  *         <li>Zufallszahl zwischen 0 und 1: {@code "rand"} oder {@code "random"}</li>
  *         <li>"Not a number" (NaN): {@code "NaN"}</li>
  *         <li>Aktuelle Zeit in ms ({@link System#currentTimeMillis()}): {@code "CURR_MILLIS"}</li>
+ *         <li>Ein Tag in ms ({@link LangUtil#DAY_MILLIS}): {@code "DAY_MILLIS"}</li>
+ *         <li>Eine Woche in ms ({@link LangUtil#WEEK_MILLIS}): {@code "WEEK_MILLIS"}</li>
  *       </ul></li>
  *   <li>{@link ITENode}: ITE-Operator:<br>
  *       Der 3-stellige ITE-Operator {@code ITE(.,.,.)} drueckt die Bedingung
@@ -275,6 +280,81 @@
       return result[idx];
     }
 
+    if ( operator.equals("STR2MILLIS") ) {
+      // 2 Parameters (or more): STR2MILLIS(string expr, format string expr) -> long
+      if ( operand.length < 2 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",2,operator) );
+      if ( !(operand[0] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",1,operator,"String") );
+      if ( !(operand[1] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",2,operator,"String") );
+      SimpleDateFormat formatter = new SimpleDateFormat(operand[1].toString());
+      try {
+        Date date = formatter.parse(operand[0].toString());
+        return date.getTime();
+      } catch (Exception err) {
+        throw new UnsupportedOperationException(err);
+      }
+    }
+      
+    if ( operator.equals("DATE2MILLIS") ) {
+      // 3 Parameters (or more): DATE2MILLIS(year, month, day) -> long
+      if ( operand.length < 3 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",3,operator) );
+      if ( !(operand[0] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",1,operator,"Number") );
+      if ( !(operand[1] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",2,operator,"Number") );
+      if ( !(operand[2] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",3,operator,"Number") );
+      try {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(
+           ((Number)operand[0]).intValue(),
+           ((Number)operand[1]).intValue(),
+           ((Number)operand[2]).intValue()
+         );
+         return calendar.getTimeInMillis();
+      } catch (Exception err) {
+        throw new UnsupportedOperationException(err);
+      }
+    }
+
+    if ( operator.equals("MILLIS2STR") ) {
+      // 2 Parameters: MILLIS2STR(num expr, format string expr) -> string
+      if ( operand.length < 2 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",2,operator) );
+      if ( !(operand[0] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",1,operator,"Number") );
+      if ( !(operand[1] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",2,operator,"String") );
+      SimpleDateFormat formatter = new SimpleDateFormat(operand[1].toString());
+      long millis = ((Number)operand[0]).longValue();
+      Date date   = new Date(millis);
+      return formatter.format(date);
+    }
+
+    if ( operator.equals("DATE2STR") ) {
+      // 4 Parameters (or more): DATE2STR(year, month, day, format string expr) -> string
+      if ( operand.length < 4 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",4,operator) );
+      for (int i=0; i<3; i++)
+        if ( !(operand[i] instanceof Number) )
+          throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",i+1,operator,"Number") );
+      if ( !(operand[3] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",4,operator,"String") );
+      SimpleDateFormat formatter = new SimpleDateFormat(operand[3].toString());
+      Calendar calendar = Calendar.getInstance();
+      calendar.set(
+         ((Number)operand[0]).intValue(),
+         ((Number)operand[1]).intValue(),
+         ((Number)operand[2]).intValue()
+       );
+       Date date = calendar.getTime();
+       return formatter.format(date);
+    }
+    
+    
     if ( operator.equals("REPLALL") ) {
       if ( operand.length != 3 )
         throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams2",3,operator) );
@@ -414,27 +494,8 @@
 //        boolean ret = Pattern.matches(operand2.toString(), operand1.toString());
         return Pattern.matches(operand2.toString(), operand1.toString()) ? 1 : 0;
       }
-      if ( operator.equals("MILLIS") ) {
-        SimpleDateFormat formatter = new SimpleDateFormat(operand2.toString());
-        try {
-          Date date = formatter.parse(operand1.toString());
-          return date.getTime();
-        } catch (Exception err) {
-          throw new UnsupportedOperationException(err);
-        }
-      }
     }
 
-    // Long/String-Operationen
-    if ( operand1 instanceof Number && operand2 instanceof String ) {
-      if ( operator.equals("DATESTR") ) {
-        SimpleDateFormat formatter = new SimpleDateFormat(operand2.toString());
-        long millis = ((Number)operand1).longValue();
-        Date date   = new Date(millis);
-        return formatter.format(date);
-      }
-    }
-
     String op1Class = (operand1 != null) ? operand1.getClass().getSimpleName() : null;
     String op2Class = (operand2 != null) ? operand2.getClass().getSimpleName() : null;
     throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.UnknownOperator",operator+" ("+op1Class+", "+op2Class+")") );
@@ -544,7 +605,11 @@
    * Wertet einen 0-stelligen Operator (Alias oder Variable) aus.
    * Als Operator unterstuetzt diese Methode
    * <ul>
-   *   <li>Zufallszahl zwischen 0 und 1: {@code "rand"} oder {@code "random"}</li>
+   *   <li>Zufallszahl zwischen 0 und 1: {@code "RAND"} oder {@code "RANDOM"}</li>
+   *   <li>Not-a-Number: {@code "NAN"}</li>
+   *   <li>Aktuelle Zeit in ms ({@link System#currentTimeMillis()}): {@code "CURR_MILLIS"}</li>
+   *   <li>Ein Tag in ms ({@link LangUtil#DAY_MILLIS}): {@code "DAY_MILLIS"}</li>
+   *   <li>Eine Woche in ms ({@link LangUtil#WEEK_MILLIS}): {@code "WEEK_MILLIS"}</li>
    * </ul>
    * @param operator 0-stelliger Operator
    */
@@ -557,6 +622,10 @@
       return Double.NaN;
     if ( operator.equals("CURR_MILLIS") )
       return System.currentTimeMillis();
+    if ( operator.equals("DAY_MILLIS") )
+      return LangUtil.DAY_MILLIS;
+    if ( operator.equals("WEEK_MILLIS") )
+      return LangUtil.WEEK_MILLIS;
     throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.UnknownAliasOperator",operator) );
   }
 

Modified: branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java
===================================================================
--- branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java	2010-10-07 21:30:45 UTC (rev 1080)
+++ branches/2.2.x/src/schmitzm/lang/tree/OperationTreeParser.java	2010-10-07 21:31:08 UTC (rev 1081)
@@ -61,6 +61,8 @@
  *           <li>boolesches WAHR (1): {@code "TRUE"}</li>
  *           <li>boolesches FALSCH (0): {@code "FALSE"}</li>
  *           <li>Aktuelle Zeit in ms ({@link System#currentTimeMillis()}): {@code "CURR_MILLIS"}</li>
+ *           <li>Ein Tag in ms ({@link LangUtil#DAY_MILLIS}): {@code "DAY_MILLIS"}</li>
+ *           <li>Eine Woche in ms ({@link LangUtil#WEEK_MILLIS}): {@code "WEEK_MILLIS"}</li>
  *       </ul></li>
  *   <li>konstante String Werte: {@link ConstantNode}</li>
  *       <ul>
@@ -91,13 +93,15 @@
  *          <li>String-Konkatenation: {@code "+"}</li>
  *          <li>Test auf regulaeren Ausdruck: {@code "regex(expression,regular expr)"}</li>
  *          <li>n-tes Ergebnis eines {@linkplain String#split(String) String-Splits} ueber regulaeren Ausdruck: {@code "split(expression,regular expr,n)"}</li>
- *          <li>Umwandung eines Datums-String in Milli-Sekunden: {@code millis(string expr, format string expr)}
- *          <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code dateStr(num expr, format string expr)}
  *       </ul></li>
  *   <li>den mehr-stelligen Zeichenketten-Operatoren: {@link MultiParamOperatorNode}
  *       <ul>
  *          <li>Teil-String: {@code "substr(expression,startPos_inkl,endPos_exkl)"}</li>
  *          <li>String-Ersetzung: {@code "replAll(expression,pattern,replacement)"}</li>
+ *          <li>Umwandung eines Datums-String in Milli-Sekunden: {@code str2millis(string expr, format string expr)}
+ *          <li>Umwandung eines Datums in Milli-Sekunden: {@code date2millis(year, month, day)}
+ *          <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code millis2Str(millis, format string expr)}
+ *          <li>Umwandung eines Datums in einen Datums-String: {@code date2Str(year, month, day, format string expr)}
  *       </ul></li>
  *   <li>die 1-stelligen Operatoren: {@link UnaryOperatorNode}
  *       <ul>
@@ -955,7 +959,8 @@
     }
     // Zufallszahl oder NaN-Konstante
     if ( token.equals("rand") || token.equals("random") ||
-         token.equals("nan")  || token.equals("curr_millis")) {
+         token.equals("nan")  || token.equals("curr_millis") ||
+         token.equals("day_millis") || token.equals("week_millis") ) {
       return new OperationTree.ConstantAliasNode(token);
     }
     // ITE(a,b,c) = IF a THEN b ELSE c
@@ -982,27 +987,42 @@
       return new OperationTree.MultiParamOperatorNode(token,null,splitParam);
     }
 
-    // MILLIS(string,formatexpr) = Umwandung von Datums-String (in angebenen Format) in Millisekunden
-    if ( token.equals("millis") ) {
+    // STR2MILLIS(string,formatexpr) = Umwandung von Datums-String (in angebenen Format) in Millisekunden
+    if ( token.equals("str2millis") ) {
       // Parameter fuer MILLIS parsen
-      BinaryTreeNode[] millisParam = parseFunctionParameters("MILLIS",2);
+      BinaryTreeNode[] millisParam = parseFunctionParameters("STR2MILLIS",2);
       // Baum fuer MILLIS
-      return new OperationTree.OperatorNode(token,millisParam[0],millisParam[1]);
+      return new OperationTree.MultiParamOperatorNode(token,null,millisParam);
     }
+    // DATE2MILLIS(year,month,day) = Umwandung von Datum in Millisekunden
+    if ( token.equals("date2millis") ) {
+      // Parameter fuer MILLIS parsen
+      BinaryTreeNode[] millisParam = parseFunctionParameters("DATE2MILLIS",3);
+      // Baum fuer MILLIS
+      return new OperationTree.MultiParamOperatorNode(token,null,millisParam);
+    }
 
-    // DATE(num,formatexpr) = Umwandung von Millisekunden in Datums-String (in angebenen Format)
-    if ( token.equals("datestr") ) {
-      // Parameter fuer MILLIS parsen
-      BinaryTreeNode[] millisParam = parseFunctionParameters("DATESTR",2);
+    // MILLIS2STR(num,formatexpr) = Umwandung von Millisekunden in Datums-String (in angebenen Format)
+    if ( token.equals("millis2str") ) {
+      // Parameter fuer DATESTR parsen
+      BinaryTreeNode[] datestrParam = parseFunctionParameters("MILLIS2STR",2);
       // Baum fuer DATESTR
-      return new OperationTree.OperatorNode(token,millisParam[0],millisParam[1]);
+      return new OperationTree.MultiParamOperatorNode(token,null,datestrParam);
     }
 
+    // DATE2STR(year,month,day,formatexpr) = Umwandung von Datum in Datums-String (in angebenen Format)
+    if ( token.equals("date2str") ) {
+      // Parameter fuer DATESTR parsen
+      BinaryTreeNode[] datestrParam = parseFunctionParameters("DATE2STR",4);
+      // Baum fuer DATESTR
+      return new OperationTree.MultiParamOperatorNode(token,null,datestrParam);
+    }
+
     // SUBSTR(string,startPos_inkl,endPos_exkl) = Teil-String
     if ( token.equals("substr") ) {
       // Parameter fuer SUBSTR parsen
       BinaryTreeNode[] substrParam = parseFunctionParameters("SUBSTR",3);
-      // Baum fuer SPLIT
+      // Baum fuer SUBSTR
       return new OperationTree.MultiParamOperatorNode(token,null,substrParam);
     }
 
@@ -1216,11 +1236,18 @@
     avOperators.add("len");         
     avOperators.add("toupper");     
     avOperators.add("tolower");     
-    avOperators.add("ITE");         
-    avOperators.add("REGEX");       
-    avOperators.add("SUBSTR");      
+    avOperators.add("ite");         
+    avOperators.add("regex");       
+    avOperators.add("substr");      
+    avOperators.add("split");      
+    avOperators.add("str2millis");      
+    avOperators.add("date2millis");      
+    avOperators.add("millis2str");      
+    avOperators.add("date2str");      
+    avOperators.add("day_millis");      
+    avOperators.add("week_millis");      
     // Die "einfachen Operatoren" and Ende setzen, da diese eigentlich
-    // menuell eingegeben werden und nicht so oft gebraucht werden
+    // manuell eingegeben werden und nicht so oft gebraucht werden
     avOperators.add("+"); 
     avOperators.add("-"); 
     avOperators.add("*"); 
@@ -1317,6 +1344,7 @@
         op.equalsIgnoreCase("ln") || op.equalsIgnoreCase("log") ||
         op.equalsIgnoreCase("val") || op.equalsIgnoreCase("str") ||
         op.equalsIgnoreCase("toupper") || op.equalsIgnoreCase("tolower") ||
+        op.equalsIgnoreCase("STR2MILLIS") || op.equalsIgnoreCase("MILLIS2STR") ||
         op.equalsIgnoreCase("!") )
       return 1;
 
@@ -1325,9 +1353,14 @@
       return 2;
 
     // Funktionen mit drei geklammerten Parameter
-    if (op.equalsIgnoreCase("ITE") || op.equalsIgnoreCase("SUBSTR") )
+    if (op.equalsIgnoreCase("ITE") || op.equalsIgnoreCase("SUBSTR") ||
+        op.equalsIgnoreCase("SPLIT") || op.equalsIgnoreCase("DATE2MILLIS") )
       return 3;
 
+    // Funktionen mit vier geklammerten Parameter
+    if (op.equalsIgnoreCase("DATE2STR"))
+      return 4;
+
     // sonst: Konstante/Alias angenommen
     return 0;
   }

Modified: branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties
===================================================================
--- branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties	2010-10-07 21:30:45 UTC (rev 1080)
+++ branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties	2010-10-07 21:31:08 UTC (rev 1081)
@@ -117,9 +117,16 @@
 OperationTreePanel.OpDesc.len=len($TEXT)
 OperationTreePanel.OpDesc.toupper=toupper($TEXT)
 OperationTreePanel.OpDesc.tolower=tolower($TEXT)
-OperationTreePanel.OpDesc.ITE=IF .. THEN .. ELSE
-OperationTreePanel.OpDesc.REGEX=REGEX( $TEXT , REGEX)
-OperationTreePanel.OpDesc.SUBSTR=SUBSTRING( $TEXT , $NUMBER , $NUMBER)
+OperationTreePanel.OpDesc.ite=IF .. THEN .. ELSE
+OperationTreePanel.OpDesc.regex=REGEX( $TEXT , $REGEX)
+OperationTreePanel.OpDesc.substr=SUBSTRING( $TEXT , $NUMBER , $NUMBER)
+OperationTreePanel.OpDesc.split=SPLIT( $TEXT , $REGEX , $NUMBER)
+OperationTreePanel.OpDesc.str2millis=str2millis( $TEXT , $TEXT)
+OperationTreePanel.OpDesc.date2millis=date2millis( $YEAR, $MONTH, $DAY)
+OperationTreePanel.OpDesc.millis2str=millis2str( $NUMBER , $FORMAT)
+OperationTreePanel.OpDesc.date2str=date2millis( $YEAR, $MONTH, $DAY, $FORMAT)
+OperationTreePanel.OpDesc.day_millis=DAY_MILLIS
+OperationTreePanel.OpDesc.week_millis=WEEK_MILLIS
 OperationTreePanel.OpDesc.plus=+
 OperationTreePanel.OpDesc.minus=-
 OperationTreePanel.OpDesc.multiply=*
@@ -163,6 +170,13 @@
 OperationTreePanel.OpTooltip.ite=Specifies a logical test to be performed.
 OperationTreePanel.OpTooltip.regex=Performs regular-expressions operation on a text.
 OperationTreePanel.OpTooltip.substr=Returns only a part of a text.
+OperationTreePanel.OpTooltip.split=Returns the n-th result of a text split over a regular expression.
+OperationTreePanel.OpTooltip.str2millis=Converts a date from string to milliseconds
+OperationTreePanel.OpTooltip.date2millis=Converts a date to milliseconds
+OperationTreePanel.OpTooltip.millis2str=Converts milliseconds to a date string
+OperationTreePanel.OpTooltip.date2str=Converts a date to a date string
+OperationTreePanel.OpTooltip.day_millis=The value of a day in milliseconds
+OperationTreePanel.OpTooltip.week_millis=The value of a week in milliseconds
 OperationTreePanel.OpTooltip.plus=Addition
 OperationTreePanel.OpTooltip.minus=-Subtraction
 OperationTreePanel.OpTooltip.multiply=Multiplication

Modified: branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties
===================================================================
--- branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties	2010-10-07 21:30:45 UTC (rev 1080)
+++ branches/2.2.x/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties	2010-10-07 21:31:08 UTC (rev 1081)
@@ -62,7 +62,7 @@
 Apply=\u00DCbernehmen
 Ready=Fertig
 Open=\u00D6ffnen
-OpenFolder=Ordner \u00ef\u00bf\u0153ffnen
+OpenFolder=Ordner \u00EF\u00BF\u0153ffnen
 Close=Schliessen
 Save=Speichern
 WaitMess=Bitte warten...
@@ -145,9 +145,16 @@
 OperationTreePanel.OpTooltip.len=Berechnet die L\u00E4nge eines Texts.
 OperationTreePanel.OpTooltip.toupper=Konvertiert Text in Gro\u00DFbuchstaben.
 OperationTreePanel.OpTooltip.tolower=Konvertiert Text in Kleinbuchstaben.
-OperationTreePanel.OpTooltip.ITE=Spezifiziert einen logischen Test.
-OperationTreePanel.OpTooltip.REGEX=Wertet einen regul\u00E4ren Ausdruck auf einem Text aus.
-OperationTreePanel.OpTooltip.SUBSTR=Liefert einen Teil-String.
+OperationTreePanel.OpTooltip.ite=Spezifiziert einen logischen Test.
+OperationTreePanel.OpTooltip.regex=Wertet einen regul\u00E4ren Ausdruck auf einem Text aus.
+OperationTreePanel.OpTooltip.substr=Liefert einen Teil-String.
+OperationTreePanel.OpTooltip.split=Liefert das n-te Ergebnis eines Text-Split über einem regul\u00E4ren Ausdruck
+OperationTreePanel.OpTooltip.str2millis=Konvertiert einen Datum-Text in Millisekunden
+OperationTreePanel.OpTooltip.date2millis=Konvertiert ein Datum in Millisekunden
+OperationTreePanel.OpTooltip.millis2str=Konvertiert Millisekunden in einen Datum-Text
+OperationTreePanel.OpTooltip.date2str=Konvertiert ein Datum in einen Datum-Text
+OperationTreePanel.OpTooltip.day_millis=Ein Tag in Millisekunden
+OperationTreePanel.OpTooltip.week_millis=Eine Woche in Millisekunden
 OperationTreePanel.OpTooltip.plus=Addition
 OperationTreePanel.OpTooltip.minus=Subtraktion
 OperationTreePanel.OpTooltip.multiply=Multiplikation



More information about the Schmitzm-commits mailing list