$validate funktion

hallo,

ist mir eben aufgefallen: in der $validate funktion fehlt ein sehr wichtiges zeichen: der backslash "".
ist auch in der hilfe nicht aufgeführt: replaces all invalid characters ( /?*"<>|: )

beim umbenennen von dateien, die den backslash im tag haben, führt dies unweigerlich zu fehlern.

gruß

Der Backslash ist ein erlaubtes Zeichen ...

  • und notwendiges Zeichen in einem Verzeichnispfad oder Dateipfad;
  • in einem Tagfeld, nicht aber unbedingt notwendig.

Wird ein Tagfeld, welches ein Backslash Zeichen enthält zur Benennung eines Dateipfades benutzt, dann erwirbt das Backslash Zeichen die Eigenschaft, die das Zeichen im Dateisystem hat.

Wenn man das nicht so haben will, dann gibt es zwei Optionen vor der Übergabe an das Dateisystem ...

  • im Tagfeld den Backslash löschen;
  • den Backslash ersetzen durch ein anderes lesbares Zeichen
    (z. B. ein anderes Unicode Zeichen, das aussieht wie ein Backslash und im Dateisystem akzeptiert wird).
Achtung: $validate respektiert das Zeichen "Doppelpunkt" als zweiten Buchstaben.
                              <!--coloro:#000000--><span style="color:#000000"><!--/coloro-->Tagfeld  TEST  <==<!--colorc--></span><!--/colorc--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->c:\ba\"*/:<>?|\<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc-->
$validate(%TEST%,'.') ==> 'c:\ba\........\' $replace($validate(%TEST%,'.'),'\','-',':','~') ==> 'c~-ba-........-' $replace($validate(%TEST%,'.'),'\',,':',) ==> 'cba........' $replace($validate(%TEST%,),'\',,':',) ==> 'cba'

DD.20160309.1732.CET, DD.20160310.1440.CET