Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Kleine Helferlein

getVarName und getVarType für Debbugingzwecke

Lizenz:Erster Autor:Letzte Bearbeitung:
WTFPLRedakteurMOD 24.02.2012

Manchmal kann es sinnvoll sein, sich Variablen ausgeben zu lassen um die Werte zu überprüfen. Doch was wenn man mehrere Variablen ausgeben möchte bzw. in einem bestimmten Fall eine bestimmte Variable. Um sich also den Namen und den Datentyp einer Variable zu dem hinterlegten Wert ausgeben zu lassen, kann man folgendes verwenden:

'Methode zur Ermittlung von Variablenname und Datentyp einer Variable


'##################################################################################
'Gibt den Variablennamen als String aus

#Define getVarName(variable) #variable


'##################################################################################
'Funktion, die für jeden Datentyp ueberladen ist und so den Datentyp als String zurueckgeben kann

Function getVarType OverLoad (variable As Integer) As String
    Return "Integer"
End Function
Function getVarType (variable As Integer Ptr) As String
    Return "Integer Ptr"
End Function
Function getVarType(variable As UInteger) As String
    Return "UInteger"
End Function
Function getVarType(variable As UInteger Ptr) As String
    Return "UInteger Ptr"
End Function
Function getVarType(variable As String) As String
    Return "String"
End Function
Function getVarType(variable As String Ptr) As String
    Return "String Ptr"
End Function
'Function getVarType(variable As ZString Ptr) As String
'   Return "ZString Ptr"
'End Function
Function getVarType(variable As WString Ptr) As String
    Return "WString"
End Function
Function getVarType(variable As Double) As String
    Return "Double"
End Function
Function getVarType(variable As Double Ptr) As String
    Return "Double Ptr"
End Function
Function getVarType(variable As Single) As String
    Return "Single"
End Function
Function getVarType(variable As Single Ptr) As String
    Return "Single Ptr"
End Function
Function getVarType(variable As Byte) As String
    Return "Byte"
End Function
Function getVarType(variable As Byte Ptr) As String
    Return "Byte Ptr"
End Function
Function getVarType(variable As UByte) As String
    Return "UByte"
End Function
Function getVarType(variable As UByte Ptr) As String
    Return "UByte Ptr"
End Function
Function getVarType(variable As Short) As String
    Return "Short"
End Function
Function getVarType(variable As Short Ptr) As String
    Return "Short Ptr"
End Function
Function getVarType(variable As UShort) As String
    Return "UShort"
End Function
Function getVarType(variable As UShort Ptr) As String
    Return "UShort Ptr"
End Function
Function getVarType(variable As Long) As String
    Return "Long"
End Function
Function getVarType(variable As Long Ptr) As String
    Return "Long Ptr"
End Function
Function getVarType(variable As ULong) As String
    Return "ULong"
End Function
Function getVarType(variable As ULong Ptr) As String
    Return "ULong Ptr"
End Function
Function getVarType(variable As LongInt) As String
    Return "LongInt"
End Function
Function getVarType(variable As LongInt Ptr) As String
    Return "LongInt Ptr"
End Function
Function getVarType(variable As ULongInt) As String
    Return "ULongInt"
End Function
Function getVarType(variable As ULongInt Ptr) As String
    Return "ULongInt Ptr"
End Function


'##################################################################################
'Beispiele

Dim As String v1 = "Hallo"
Dim As String * 9 v2 = "123456789"
Dim As Byte Ptr v3 = Cast(Byte Ptr, 12)
Dim As Integer v4 = 4500
Dim As Single v5 = 12.34
Dim As Double v6 = 56.789
Dim As Byte v7 = 127
Dim As UByte v8 = 245
Dim As Short v9 = -43
Dim As UShort v10 = 43
Dim As ULongInt v11 = 89283049
Dim As Long Ptr v12 = Cast(Long Ptr, 23)
Dim As WString * 9 v13 = "12345678"


Print getVarName(v1) & " ist vom Typ " & getVarType(v1) & " und hat den Wert: " & v1
Print getVarName(v2) & " ist vom Typ " & getVarType(v2) & " und hat den Wert: " & v2
Print getVarName(v3) & " ist vom Typ " & getVarType(v3) & " und hat den Wert: " & v3
Print getVarName(v4) & " ist vom Typ " & getVarType(v4) & " und hat den Wert: " & v4
Print getVarName(v5) & " ist vom Typ " & getVarType(v5) & " und hat den Wert: " & v5
Print getVarName(v6) & " ist vom Typ " & getVarType(v6) & " und hat den Wert: " & v6
Print getVarName(v7) & " ist vom Typ " & getVarType(v7) & " und hat den Wert: " & v7
Print getVarName(v8) & " ist vom Typ " & getVarType(v8) & " und hat den Wert: " & v8
Print getVarName(v9) & " ist vom Typ " & getVarType(v9) & " und hat den Wert: " & v9
Print getVarName(v10) & " ist vom Typ " & getVarType(v10) & " und hat den Wert: " & v10
Print getVarName(v11) & " ist vom Typ " & getVarType(v11) & " und hat den Wert: " & v11
Print getVarName(v12) & " ist vom Typ " & getVarType(v12) & " und hat den Wert: " & v12
Print getVarName(v13) & " ist vom Typ " & getVarType(v13) & " und hat den Wert: " & v13

Sleep

Funktioniert nicht mit ZStrings und Any Ptr.

Es geht aber auch mit eigenen Datentypen. Dafür muss man die Funktion nur für die eigene Klasse überladen, was in etwa so aussehen könnte:

Type myType
    x As Integer
End Type

Function getVarType(variable As myType) As String
    Return "myType"
End Function

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 07.04.2010 von RedakteurMOD angelegt.
  • Die aktuellste Version wurde am 24.02.2012 von RedakteurMOD gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen