vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: Funktion gesucht..... 
Autor: RobinO
Datum: 24.06.05 09:28

So, ich will mir Faulhei nicht nachsagen lassen.....

Hier ist meine Sub die ich programmiert habe (vielleicht etwas umständlich, aber die werde ich später noch vereinfachen).......Funktioniert bei allen 6 Byte Realdatentypen mit der Formatierung: 1. bit Vorzeichen, 39 bit Mantisse und 1 Byte Exponent (bias = 128).....
Der Code steht einfach in einer Form, die ein Label hat (Label1) ein Steuerelementenfeld (Test1) und zwei Buttons....

Private Sub Command1_Click()
Dim Bytes(1 To 6) As Byte
Dim strmerke As String
Dim strzwSP As String
Dim iExpo As Integer
Dim i As Integer
Dim ibere As Single
Dim sbere As Single
Dim sstelle As Integer
Dim zähler As Integer
Dim strgesamt As String
Dim iPotenz As Integer
Dim iSw As String
Dim dbVKomma As Double
Dim dbNKomma As Double
Dim dbErgebnis As Double
 
'Daten aus TXT Array auslesen....
 
Bytes(6) = Text1(5).Text
Bytes(5) = Text1(4).Text
Bytes(4) = Text1(3).Text
Bytes(3) = Text1(2).Text
Bytes(2) = Text1(1).Text
Bytes(1) = Text1(0).Text
 
'Bytes(2) = 0
'Bytes(1) = 0
'Debug.Print BytesTo(Bytes, vbSingle) '4,7
'Debug.Print BytesTo(Bytes, vbDouble)
'Debug.Print BytesTo(Bytes, vbLong)
'Debug.Print BytesTo(Bytes, vbVariant)
'Debug.Print BytesTo(Bytes, vbDecimal)
'Debug.Print BytesTo(Bytes, vbInteger)
strmerke = ""
strgesamt = ""
'zähler = 0
 
'ASCII-Wert in dualen Wert umrechnen:
For i = 2 To 6
    ibere = Bytes(i)
 
    Do Until ibere <= 0.5
    'zähler = zähler + 1
        If ibere <> 0.5 Then
        'strmerke = "1" & strmerke
 
            sbere = ibere / 2
            strzwSP = sbere
            sstelle = InStr(1, strzwSP, ",")
            If sstelle > 0 Then
                strmerke = "1" & strmerke
                ibere = Mid(strzwSP, 1, sstelle - 1)
            Else
                strmerke = "0" & strmerke
                ibere = sbere
            End If
        Else
        strmerke = "1" & strmerke
        End If
    Loop
 
    zähler = Len(strmerke)
    If zähler < 8 Then
        Do
            strmerke = "0" & strmerke
            zähler = zähler + 1
        Loop Until zähler = 8
    End If
strgesamt = strmerke & strgesamt
strmerke = ""
Next i
 
'Duale Zeichenkette in Exponent und Mantisse aufspalten:
'Exponent:
Dim iExp As Integer
Dim strVKomma As String
Dim strNKomma As String
 
iExp = Bytes(1) - 128
If iExp < 0 Then iExp = 128 - Bytes(1)
 
'Mantisse (inkl. Vorzeichen):
Dim VZ As Boolean
If Mid(strgesamt, 1, 1) = 0 Then
    VZ = True   ' +
Else
    VZ = False  ' -
End If
strgesamt = Mid(strgesamt, 2, 39) 'string ohne VZ
strVKomma = Left(strgesamt, iExp - 1)
 
zähler = Len(strgesamt)
strNKomma = Right(strgesamt, zähler - iExp + 1)
 
'Ausrechnen der beiden Teil + zusammensetzten....
strVKomma = "1" & strVKomma 'führende 1 anfügen
zähler = Len(strVKomma)
'Vor Komma...:
iPotenz = 0
For iPotenz = 0 To zähler
 
    iSw = Mid(strVKomma, iPotenz + 1, 1)
    If iSw = "1" Then dbVKomma = dbVKomma + (2 ^ (zähler - (iPotenz + 1)))
Next iPotenz
'Nach Komma..:
zähler = Len(strNKomma)
iPotenz = 0
For iPotenz = 0 To zähler
    iSw = Mid(strNKomma, iPotenz + 1, 1)
    If iSw = "1" Then dbNKomma = dbNKomma + (2 ^ -(iPotenz + 1))
Next iPotenz
 
'zusammenrechnen der beiden hälften:
dbErgebnis = dbVKomma + dbNKomma
Label1.Caption = dbErgebnis
End Sub
 
Private Sub Command2_Click()
End
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Funktion gesucht.....913RobinO22.06.05 09:37
Re: Funktion gesucht.....677Stefan B.22.06.05 10:08
Re: Funktion gesucht.....517RobinO22.06.05 10:53
Re: Funktion gesucht.....631RobinO22.06.05 10:57
Re: Funktion gesucht.....607RobinO22.06.05 11:17
Re: Funktion gesucht.....646Stefan B.22.06.05 12:28
Re: Funktion gesucht.....609RobinO22.06.05 13:04
Re: Funktion gesucht.....645CyberDreams22.06.05 13:10
Re: Funktion gesucht.....658RobinO22.06.05 13:24
Re: Funktion gesucht.....608RobinO22.06.05 13:32
Re: Funktion gesucht.....736RobinO24.06.05 09:28
Re: Funktion gesucht.....577BasTler24.06.05 11:44
Re: Funktion gesucht.....584RobinO24.06.05 12:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel