User Tools

Site Tools


vba:functions:print_r:definition

Funktionen print_r(), print_rm(), d(), c()

Definitionen

Public Function print_r( _
        ByRef iExpression As Variant, _
        Optional ByVal iParams As enuPrintRParams = prParamsDefault, _
        Optional ByVal iReturn As enuPrintROutputMethode = prConsole _
) As String

Parameter-Liste

Diverse Parameter zur Formatierung der Ausgabe.

  • iExpression Variable die analysiert werden soll
  • iParams Diverse Parameter zur Formatierung der Ausgabe. Die verschiedenen Parameter lassen sich kombinieren. Es gibt Parameters, die in Kombination keinen Sinn machen. zB: prStringSingleQuotes+prStringDoubleQuotes. In diesem Fall wird der kleinere Wert genommen. Also nur prStringSingleQuotes. Für die genaue Funktion der Parameter, siehe Kommentar beim Enum enuPrintRParams Wenn man vom Standart einfach etwas weghabenwill, dann kann man das auch als Negativ-Parameter mitgeben
  • iReturn (Optional) Art der Rückgabe: Standart ist das Direktfenster. Alternativ kann man auch als Rückgabewert der Funktion oder in den Zwieschnepseicher des PCs schreiben. Grad letzteres ist bei gösseren Verschachtelungen Empfehlenswert, da das Direktfenser eine Beschränkte Anzahl Zeilen hat. Die Auswahlen lassen sich auch kombinieren: prConsole+prClipboard.

Enumerator

enuPrintRParams
  • prNoParams Kein Parameter hat Gültigkeit
  • prShowType Zeigt den Datentype am Anfangan in <> an
  • prStringSingleQuotes Setzt Strings in einfache Anführungszeichen. Hat vor prStringDoubleQuotes vorrang.
  • prStringDoubleQuotes Setzt Strings in doppetle Anführungszeichen
  • prEscapeDoubleQuotes Setzt wandelt “ innerhalb eines Textes zu ”“. Somit ist der String direkt weiterverwendbar
  • prEscapeSpaces Tab, Cr, Lf als /t, /r, /n zurückgeben
  • prEscapeNotPrintablaChars Nicht Druckbare Zeichen als Unicode ausgeben
  • prParamsDefault = prShowType + prStringSingleQuotes + prEscapeSpaces + prEscapeNotPrintablaChars
enuPrintROutputMethode

Auswahl was mir der Analyse geschehen soll. Die Werte lassen sich mit + kombinieren

  • prConsole(1) Die Ausgabe wird ins Direktfenster geschrieben
  • prReturn(2) Die Ausgabe wird als Funktionsrückgabewert zurückgegeben
  • prClipboard(4) Die Ausgabe wird in den Zwieschenspeicher geschrieben
  • prMsgBox(8) Die Ausgabe wird als Popup ausgegeben

Rückgabewerte

Falls ein array übergeben wurde, werden die Werte in einem Format angezeigt, das sowohl die Schlüssel als auch die Elemente darstellt. Für Variablen vom Typ Collection und Dictionary gilt das Gleiche. Für die restlichen Objekte wird nur der Klassenname angezeigt.
Für alle einfachen Variablen wird der Type und der Inhalt angezeigt

Ruft print_r mit dem Parameter prConsole für eine ganze Liste von Variablen auf

Definitionen

Public Sub print_rm(ParamArray iExpressions() As Variant)

Parameter-Liste

  • iExpressions Liste der Variablen die analysiert werden soll

d()

d() ist ein Alais zu print_r() und steht für [D]ebug

Definition

Beschreibung der Komponenten, siehe print_r()

Public Function d( _
        ByRef iExpression As Variant, _
        Optional ByVal iParams As enuPrintRParams = prParamsDefault, _
        Optional ByVal iReturn As enuPrintROutputMethode = prConsole _
) As String

c()

Wie print_r mit den den Parametern prEscapeDoubleQuotes + prStringDoubleQuotes, sowieprReturn + prConsole \ c steht für [C]ode
Eignet sich, wenn man das Resultat später weiterverwenden will

Definition

'/**
' * Wie print_r mit den den Parametern prEscapeDoubleQuotes + prStringDoubleQuotes, sowieprReturn + prConsole
' * c für [C]ode
' * Eignet sich, wenn man das Resultat später weiterverwenden will
' * @example: c "a" & chr(34) & "b" -> "a""b"
' * @param  Variant     Zu prüfende Variable
' * @return Variant     Nichts oder die Analyse als String
Public Function c(ByRef iExpression As Variant) As String

Ausgewertete Variablen/Obejekte

Im Moment kann die Funktion die folgenden Objekte/Variablen auswerten

  • Native Variablen: Strings, Datum, Integer, Long, Double, Decimal, Null, Empty
  • Eindimensionale Array (auch Verschachtelte). Also keine myArray(1, 2)
  • Collection
  • Dictionaries
  • ErrObject
  • Objekte aus Klassenmodulen (beschränkt auf Public Property Get)
  • RegExp (Referenz auf 'Microsoft VBScript Regular Expressions 5.5' notwendig)
  • Mehrdimensionale Arrays (bis zu 4 Dimensionen. Kann beliebig erweitert werden)
  • Dao.Recordset (Anzahl Einträge sind begrenzt)
  • TempVars (Nur bei Access)
  • Properties (Nur bei Access)

Bei allen restlichen Objekten wird nur der Klassenname angegeben

Conditional Compilation

Um den verschiedenen Variable/Objekttypen in den verschiedenen VBAs gerecht zu werden, habe ich eine Conditional Compilation eingeführt. ganz am Anfang definiert man, welches Office-Paket es ist.

#Const isAccess = True
#Const isExcel = False      'Excel unterstützt keine TempVars und Properties
#Const isWord = False       'Muss noch überprüft werden, welche Dinge unter Word nicht funktionieren

Offene Auswertungen

Die Folgenden will ich demnächst mal noch implementieren.

  • Excel.Range
  • User Defined Type UDT (noch keine Ahnung wie ich die hinkriegen soll)
vba/functions/print_r/definition.txt · Last modified: 23.07.2015 09:31:23 by yaslaw