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

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 140520 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

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:
Mbf2ieee.exe
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
				

Eigenschaften

Artikel-ID: 140520 - Geändert am: Donnerstag, 6. Februar 2014 - Version: 2.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-Bit Enterprise Edition
Keywords: 
kbnosurvey kbarchive kbmt kbdownload kb16bitonly kbfile kbprb kbsample KB140520 KbMtde
Maschinell übersetzter Artikel
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.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 140520
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com