PRB: Konvertieren von MBF in IEEE in Visual Basic für Windows

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

140520
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
Datendateien, die mit älteren Microsoft Basic Produkten erstellt (direkt Basic GW-Basic und Basica (IBM und Compaq lizenziert Basic)) kann nicht gelesen werden von Visual Basic für Windows.
Ursache
Vor, das die IEEE-Gleitkommazahl zeigen standard wird häufig angenommen, ein internes unverankerten Punkt Format bekannt als Microsoft Binary Format (MBF) verwendet. IEEE-Standard wurde später eingeführt und war der Branche standard.

Frühe Versionen von Microsoft QuickBASIC und GW-Basic unterstützt nur MBF-Format. In Microsoft Basic Professional Development System (PDS) und Visual Basic für MS-DOS sind die Funktionen zum Konvertieren zwischen MBF und IEEE Formate verfügbar. Wie Microsoft Richtung vollständige Akzeptanz von IEEE-Standard verschoben unterstützt Sie jedoch für das MBF-Format entfernt wurde.

Visual Basic für Windows verwendet den IEEE-Standard. Das MBF-Format, ist jedoch nicht kompatibel mit der IEEE-Standard, und auf diese Weise gespeicherte Daten nicht gelesen werden.
Lösung
Der PDS und Visual Basic für MS-DOS-Produkte enthalten Funktionen, die zwischen MBF-Format und IEEE-Format konvertieren. Diese Funktionen sind in Visual Basic für Windows nicht verfügbar. Hier sind zwei Umgehungsmöglichkeiten für dieses Problem:
  1. Ein Programm kann in PDS oder in Visual Basic für MS-DOS geschrieben werden, die die Datei mit die MBF-Daten neu erstellt. Nachdem Sie die Dateiinformationen in PDS oder in Visual Basic für MS-DOS gelesen haben, können Sie die MKxMBF $-Funktionen (finden Sie in die Handbüchern für PDS oder Visual Basic für MS-DOS oder Ihre Menüs), die Daten in IEEE-Format zu konvertieren. Diese Methode ist bevorzugten aus zwei Gründen:
    • Konvertiert die Daten in IEEE, damit andere Programme Ihre Dateien zugreifen können.
    • Wenn Sie Methode 2 verwenden, benötigen Ihr Programm eine zusätzliche DLL, die Sie mit Ihrer Anwendung verteilen müssen.
  2. Zuvor war keine Möglichkeit, die Daten von Visual Basic für Windows zu konvertieren. Aber es gibt jetzt eine DLL dazu zur Verfügung. Diese DLL (MBF2IEEE.DLL) enthält Funktionen, die die Funktionen MKS, MKD, CVS und CVD zu simulieren, die in einigen der MS-DOS-Basis Produkte vorhanden waren. Diese Funktionen (MKS, MKD, CVS und CVD) sind in Visual Basic für Windows, wodurch die Notwendigkeit dieser DLL nicht vorhanden. Abschnitt Weitere Informationen Details über die DLL und erläutert die von dem Microsoft Download Center herunterladen.
Status
Es handelt sich hierbei um ein beabsichtigtes Verhalten.
Weitere Informationen

Details zu Methode 2: Verwenden von Mbf2ieee.dll

Hinweis: Diese Funktionen alle führen Konvertierungen zwischen Microsoft Binary Format (MBF) und IEEE Punktwerte unverankert. Einige der neueren MS-DOS-Basis Produkte musste Versionen dieser Funktionen, die anders bearbeitet. Z. B. lassen Sie Sie sich ein IEEE-Zahl als Zeichenfolge anschauen, ohne Konvertierung zu MBF. Die hier beschriebenen Routinen werden nur als eine Möglichkeit zum Abrufen von alte MBF-Daten bereitgestellt.

Diese Funktionen stellen Konvertierungen zwischen IEEE Punktwerte unverankert und unverankerte Microsoft Binary Format (MBF) zeigen Werte. Im folgenden ist ein Satz von Anweisungen, die in Visual Basic-Programm enthalten sein müssen und diese Funktionen aufruft deklarieren:
   Public Declare Function Cvs Lib "MBF2IEEE.DLL" (X As String) As Single   Public Declare Function Cvd Lib "MBF2IEEE.DLL" (X As String) As Double   Public Declare Function Mks Lib "MBF2IEEE.DLL" (X As Single) As String   Public Declare Function Mkd Lib "MBF2IEEE.DLL" (X As Double) As String				

Unten ist eine Beschreibung der einzelnen diese Funktionen zusammen mit einem Beispiel.

CVS und CVD-Funktionen

Diese Funktionen akzeptieren eine 4-Byte (CVS) oder eine 8-Byte (CVD) Zeichenfolge als Argument. Sie erwarten das Bitmuster dieser Zeichenfolge um eine einfache oder doppelte Genauigkeit MBF-Wert bzw. darzustellen. Gibt eine IEEE Ergebnis der Funktion.
   Dim MBF As String, IEEE As Single   ' load the string from a file, etc.   IEEE = CVS(MBF)				

MKS und MKD-Funktion

Diese Funktionen übernehmen ein einzelnes IEEE (MKS), oder doppelklicken (MKD) Genauigkeit als Argument. Anschließend wird dieser Wert in einen 4-Byte oder 8-Byte-MBF-Wert konvertiert und gibt es in eine Zeichenfolge zurück.
   Dim MBF AS String, IEEE As Single   MBF = MKS(IEEE)   ' Now write the MBF value out to disk				

Mögliche Probleme

Es gibt Unterschiede zwischen den IEEE-Format und MBF. Aus diesem Grund kann Genauigkeit bei der Übersetzungen verloren gehen. Es ist auch möglich, dass eine Zahl zwischen den beiden Formaten konvertiert werden kann. Wenn dies der Fall ist, wird die Visual Basic-Pufferüberlauf (Fehler # 6) generiert. Tritt ein abfangbarer Fehler, also den Fehler entsprechend behandeln.

So erhalten Sie Mbf2ieee.dll

Die folgende Datei steht im Microsoft Download Center zum Download zur Verfügung:
Weitere Informationen zum Download von Microsoft Support-Dateien finden Sie in folgendem Artikel der Microsoft Knowledge Base:
119591So erhalten Sie Dateien vom Microsoft Support im Internet
Microsoft hat diese Datei auf Viren überprüft. Microsoft hat dazu die neueste Software zur Virenerkennung verwendet, die zum Zeitpunkt der Bereitstellung verfügbar war. Die Datei befindet sich auf Servern mit verstärkter Sicherheit, wodurch nicht autorisierte Änderungen an der Datei weitestgehend verhindert werden. Nach dem Download Mbf2ieee.exe, führen Sie es zusammen mit den Quelldateien und eine Datei Mbf2ieee.txt Mbf2ieee.dll erhalten ist eine Infodatei, die den Text der dieser Artikel enthält.

Quellcode in Mbf2ieee.exe enthalten

Zusätzlich zu der DLL selbst wird der Quellcode auch, bereitgestellt, damit können Sie Änderungen vornehmen und neu, kompilieren Wenn Sie Microsoft c Erneut kompilieren und eine neue DLL-Datei erstellen, müssen Sie Microsoft C verwenden, da die Routinen spezifisch für Microsoft C sind und basieren auf die Art die Microsoft C unverankerten zeigen Werte zurückgibt. Dieser Quellcode kompiliert mit Borland c nicht

Verwenden Sie mit Microsoft C neu zu kompilieren die folgenden Befehlszeile-Anweisungen, um die DLL zu erstellen:
    cl -ALw -Ow -W2 -Zp -Tp mbf2ieee.c    link /nod c:\vb\cdk\vbapi.lib mbf2ieee, mbf2ieee.dll, NUL, sdllcew       oldnames libw, mbf2ieee    rc -t mbf2ieee.dll    implib mbf2ieee.lib mbf2ieee.def				
BASCOM QBASIC GWBASIC BASICA 4.00 S14706 Mbf2ieee

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 140520 – Letzte Überarbeitung: 02/06/2014 21:54:11 – Revision: 2.2

  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-Bit Enterprise Edition
  • kbnosurvey kbarchive kbmt kbdownload kb16bitonly kbfile kbprb kbsample KB140520 KbMtde
Feedback