====== Konvertierungen in VBS ======
===== Hexadezimal zu Dezimal =====
' ** wandelt Hex-Zahl in Dez-Zahl
Function HxDz (strHex)
HxDz = CLng("&H" & strHex)
End Function
===== Dezimal zu Hexadezimal =====
' ** wandelt Dez-Zahl in 6-stellige Hex-Zahl
Function DzHx (Dez)
DzHx=right(Hex(Dez+&h1000000&),6)
End Function
===== Hexadezimal zu ANSI =====
' ** wandelt Hex-Zahl in das korrespondierende ANSI-Zeichen
Function HxAnsi (strHex)
HxAnsi = Chr(CLng("&H" & strHex))
End Function
===== Dezimal zu Binär =====
Function DezToBin (ByVal lngZahl)
' ** Dezimal nach Binaer umrechnen
Dim bytRest
Dim lngResultat
Do
lngResultat = lngZahl\2
bytRest = lngZahl Mod 2
lngZahl = lngResultat
DezToBin = DezToBin & bytRest
Loop While (lngResultat >=1)
DezToBin = StrReverse(DezToBin)
End Function
===== Binär zu Dezimal =====
Function BinToDez(ByVal strBin)
' ** Binaer nach Dezimal umrechnen
Dim bytBit
Dim bytBas
Dim intStrLen
Dim dblZwischenres
Dim n
bytBas = 2
intStrLen = Len(strBin)
For n = 0 To (intStrLen - 1)
bytBit = Mid(strBin, intStrLen - n, 1)
If bytBit <> 0 Then
dblZwischenres = bytBit * (bytBas ^ n)
BinToDez = BinToDez + dblZwischenres
End If
Next
If BinToDez = "" then BinToDez = 0
End Function
===== Dezimalzahl zu 8-Bit-Binär-String =====
Benötigt wird das z.B., wenn in einem zweiten Schritt einzelne Bits ausgewertet werden sollen.\\
' ** Umwandlung Dezimalzahl zu 8-BIT-Binär-String
Function DezBin8(byVal Dez)
Dim x
Dez = Abs(Dez)
For x = 1 To 8
DezBin8 = (Dez mod 2) & DezBin8
Dez = Dez \ 2
Next
End Function
===== Byte zu Kilobyte oder Megabyte =====
' Rechnet Byte, je nach Wertgröße in Kilo- oder Megabytewert um,
' gibt das Ergebnis - auf zwei Dezimalstellen gerundet - mit der
' Einheit Byte, kB oder MB zurück
Function ByteVorsatz (ByVal bytewert)
If bytewert < 1024 then ByteVorsatz = bytewert & " Byte"
If bytewert >= 1024 and bytewert < 1048576 Then ByteVorsatz = Round(bytewert / 1024, 2) & " kB"
If bytewert >= 1048576 then ByteVorsatz = Round(bytewert / 1048576, 2) & " MB"
End Function
===== Farbwerte =====
Das Dialogsteuerelement **Color** liefert als Ergebnis den RGB-Wert ("000 000 000" bis "255 255 255").\\ \\
==== RGB-Wert zu Einzelwerten r, g und b ====
Werden die RGB-Werte einzeln benötigt wie z.B. bei **FF_ExtendCanvas**, so splittet man diesen Wert.\\
RGB_Array = split(RGB)
call FF_ExtendCanvas(left,right,top,bottom,RGB_Array(0),RGB_Array(1),RGB_Array(2))
==== RGB-Wert zu Farbreferenz (colorref) ====
Viele FF-Befehle wie z.B. **FF_NewImage** oder **FF_MakeBanner** benötigen zur Farbangabe den Referenzwert colorref (0 - 16777215).\\
call FF_NewImage(width,height,Farbreferenz(RGB))
' ** Umwandlung RGB-Wert ("000 000 000" bis "255 255 255") zu Farbreferenz (0 - 16777215)
Function Farbreferenz (RGB_Wert)
Dim C_Array
C_Array = split(RGB_Wert," ")
Farbreferenz = C_Array(0) + C_Array(1) * (2^8) + C_Array(2) * (2^16)
End Function
==== Farbreferenz (colorref) zu RGB-Wert ====
Den Referenzwert kann man zurück wandeln zum RGB-Wert\\
' ** Farbreferenz (0 - 16777215) zu RGB-Wert ("000 000 000" bis "255 255 255")
Function RGB_Farbwerte (Referenz)
RGB_Farbwerte = Right(1000 + (Referenz and &HFF),3) & " " &_
Right(1000 + ((Referenz\256) mod 256),3) & " " & Right(1000 + (Referenz\&H10000),3)
End Function
===== Pixel / Millimeter =====
Entscheidend für die Umrechnung zwischen Längeneinheit zu Pixel ist die Punktdichte, die üblicherweise in Punkte pro Zoll - Dots per Inch ([[http://de.wikipedia.org/wiki/Punktdichte|DPI]]) angegeben wird,.\\
===== Millimeter zu Pixel =====
Function mm_zu_px (Millimeter, Dpi)
mm_zu_px = Millimeter * Dpi * 0.03937
End Function
===== Pixel zu Millimeter =====
Function px_zu_mm (Pixel, Dpi)
px_zu_mm = Pixel / Dpi / 0.03937
End Function