User Tools

Site Tools


vba:cast:readablename

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:cast:readablename [08.07.2014 12:10:30]
yaslaw [[VBA] readableName()]
vba:cast:readablename [31.08.2015 11:27:41] (current)
yaslaw
Line 1: Line 1:
 +<​const>​
 +    version=1.1.0
 +    vdate=28.01.2015
 +    fname=cast_readablename.bas
 +    ns=%NAMESPACE%
 +    fpath=/​vba/​cast
 +</​const>​
 ====== [VBA] readableName() ====== ====== [VBA] readableName() ======
-Diese Funktion erstellt aus einem technischen Namen ein halbwegs lesbarer Namen. ​Ich verwende die Funktion häufig um automatisch generierte Reports mit besser lesbaren Titeln zu versehen. +//Diese Funktion erstellt aus einem technischen Namen ein halbwegs lesbarer Namen.//
-Insofern ist die Funktion das Gegenpart von [[vba:​functions:​techname]].+
  
-{{:​vba:​functions:​udf_readablename.bas|Download ​udf_readablename.bas}}+==Version %%version%% - %%vdate%%== 
 +{{%%fname%%|Download ​%%fname%% (V-%%version%%)}} 
 + 
 +>Siehe auch [[vba:​cast:​techname]]
  
 ===== Definition ===== ===== Definition =====
Line 27: Line 36:
  
 ===== Code ===== ===== Code =====
-<code vb udf_readableName.bas>​'------------------------------------------------------------------------------- +<source ​'%%fpath%%/%%fname%%' ​vb>
-'​File ​        : udf_readableName.bas +
-' ​              ​Copyright mpl by ERB software +
-' ​              All rights reserved +
-' ​              http://​wiki.yaslaw.info/​dokuwiki/​doku.php/​vba/​cast/​strtodate +
-'Environment ​ : VBA 2007 + +
-'​Version ​     : 1.0.1 +
-'​Name ​        : readableName +
-'​Author ​      : Stefan Erb (ERS) +
-'​History ​     : 17.06.2014 - ERS - Creation +
-' ​              ​08.07.2014 - ERS - kleinere Korrekturen +
-'​------------------------------------------------------------------------------- +
-Option Explicit +
- +
-Public Enum rnTechNameType +
-    rnUnderline ​    '​Die Wörter sind beim technischen Namen mit Unterstriche getrennt. FOO_BAR -> Foo Bar +
-    rnCamelCase ​    '​Die Wörter sind mit CamelCase getrennt. FooBar -> Foo Bar +
-    rnAutomaitc ​    '​Die Funktion findet selber heraus, welcher Type es ist. Kommt ein : im Text for, ist es rnUnderline,​ ansonsten rnCamelCase +
-End Enum +
- +
-Private rxCacheCamelCase As Object +
- +
-'/** +
-' * Entspricht dem Gegenteil von techName. macht aus Technischen Namen lesbare Namen +
-' * +
-' *     name = readableName(technischer Name [, Type des technischen Namens]) +
-' * +
-' * @param ​ String ​         Der Technische Name +
-' * @param ​ rnTechNameType ​ Art der Worttrennung +
-' * @return String +
-' */ +
-Public Function readableName( _ +
-        ByVal iTechName As String, _ +
-        Optional ByVal iType As rnTechNameType = rnAutomaitc _ +
-) As String +
-    Dim words() As String +
-    Dim idx As Integer +
-    +
-PARSE: +
-    Select Case iType +
-        Case rnAutomaitc +
-            iType = IIf(InStr(iTechName,​ "​_"​) > 0, rnUnderline,​ rnCamelCase) +
-            GoTo PARSE  'Try with the neu type +
-         +
-        Case rnUnderline +
-            words = split(iTechName,​ "​_"​) +
-         +
-        Case rnCamelCase +
-            '​initialize cached regExp +
-            If rxCacheCamelCase Is Nothing Then +
-                Set rxCacheCamelCase = CreateObject("​VBScript.RegExp"​) +
-                rxCacheCamelCase.Global = True +
-                rxCacheCamelCase.pattern = "​([A-Z][a-z_]*|[a-z_]+|[\d_]+)"​ +
-            End If +
-             +
-            If Not rxCacheCamelCase.Test(iTechName) Then +
-                ReDim words(0): words(0) = iTechName +
-            Else +
-                Dim mc As Object: Set mc = rxCacheCamelCase.execute(iTechName) +
-                ReDim words(mc.count - 1): For idx = 0 To mc.count() - 1 +
-                    words(idx) = mc(idx) +
-                Next idx +
-            End If +
-    End Select +
-     +
-    readableName = StrConv(join(words,​ " "), vbProperCase) +
-End Function</​code>+
vba/cast/readablename.1404814230.txt.gz · Last modified: 08.07.2014 12:10:30 by yaslaw